我遇到了循環div元素的問題,以及我不知道如何去做。代碼非常有效。使用VBA循環遍歷DIV元素
本質上,我有權訪問一個網站,並希望通過鏈接從它下載內容。我的代碼看起來並找到元素X並繼續單擊該元素。
問題是,元素X會重複多次,例如.getElementByClassName(「AssetLinkText」)會在HTML代碼中重複幾次,從而導致提取下載第一個「AssetLinkText」。
我在想,這個解決方案是通過HTML進行搜索,即爲每個循環尋找帶有內部文本「下載完整證券列表」的標籤。但是,我不確定如何做到這一點。
Sub anotherAttempt()
'DECLARE VARIABLES
Dim browser As InternetExplorer
Dim document As HTMLDocument
Set browser = New InternetExplorer
Dim div
'MAKE VIS AND NAV
browser.Visible = True
browser.Navigate "https://etf.deutscheam.com/GBR/ENG/ETF/LU1221100792/-/DAX-UCITS-ETF-(DR)-Income"
'MULTITHREAD
Do While browser.Busy And Not browser.readyState = READYSTATE_COMPLETE
DoEvents
Loop
'PERFORM ACTIONS
Set document = browser.document
Dim anchorElement As HTMLAnchorElement
Set anchorElement = document.getElementsByClassName("AssetLinkText")
'CHECK FOR HOLDINGS LINK
anchorElement.Click
End Sub
VBA和vb.net是不一樣,這個功能[似乎不存在](https://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument (v = vs.110).aspx)在vb.net我不'看到任何JavaScript的。 –
'Set anchorElement = document.getElementsByClassName(「...」)'給你一個元素列表,這意味着'anchorElement.Click'永遠不能工作。您不能單擊元素列表。你的問題不清楚你想達到什麼目的。 – Tomalak
查看getElementsByClassName的返回值,它將返回一個集合,然後使用它來循環集合。 Microsoft Internet控件上的幫助文件和Internet是很好的信息來源。 –