1
我想在Excel中創建一個VBA宏:Excel的VBA:網頁HTML不顯示,當我瀏覽到新的一頁
- 導航到網頁
- 搜索HTML文檔與所有元素標籤名稱「輸入」
- 打印找到的每個元素的屬性(名稱,類型和值)
- 單擊網頁上的按鈕以導航到第二個網頁。
- 搜索HTML文檔的第二頁上與標記名稱「輸入」
- 打印每個元素的屬性中(名稱,類型和值)的所有元素
一切工作發現,直到第5步。當我嘗試搜索HTML文檔時,出於某種原因,它不搜索第二頁的HTML文檔,而是在步驟2中查看初始網頁的HTML,並在步驟3中打印出相同的結果。
請問你們看看我的代碼,看看我做錯了什麼?我在下面列出了我的代碼,並試圖發表評論以使其可讀。
Sub C_R()
Dim ie As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection
Dim HTMLButton As MSHTML.IHTMLElement
'Opens Internet Explorer and navigates to website.
ie.Visible = True
ie.navigate "http://openaccess.sb-court.org/OpenAccess/"
Do While ie.ReadyState <> READYSTATE_COMPLETE
Loop
'Searches HTML(initial page) to find all elements with "input" tag name.
'Prints attributes of each element (name, type, and value".
Set HTMLDoc = ie.Document
Set HTMLButtons = HTMLDoc.getElementsByTagName("input")
Debug.Print "Initial Page"
For Each HTMLButton In HTMLButtons
Debug.Print HTMLButton.getAttribute("name"), HTMLButton.getAttribute("type"), HTMLButton.getAttribute("value")
Next HTMLButton
'Navigates to second page
HTMLButtons(1).Click
Do While ie.ReadyState <> READYSTATE_COMPLETE
Loop
'Searches HTML(second page) to find all elements with "input" tag name.
'Prints attributes of each element (name, type, and value".
Set HTMLDoc = ie.Document
Set HTMLButtons = HTMLDoc.getElementsByTagName("input")
Debug.Print "Second Page"
For Each HTMLButton In HTMLButtons
Debug.Print HTMLButton.getAttribute("name"), HTMLButton.getAttribute("type"), HTMLButton.getAttribute("value")
Next HTMLButton
End Sub
任何幫助,您可以提供將不勝感激。非常感謝。
在第一個'HTMLButtons(1).Click'之後,IE改變了頁面嗎?我會使用Firefox和Developer Tools,當你點擊按鈕時,你可以看到HTML代碼的變化。 – PatricK