2016-08-17 187 views
0

我正在嘗試使用VBA捕獲網絡數據。Vba使用HTML元素創建集合

我有這樣的HTML行:

<div class="table-wrapper"> 
    <table class="mega-table"> 
    <thead> 
     <tr>…</tr> 
    </thead> 
    <tbody> 
     <tr>…</tr> 
     <tr>…</tr> 
     <tr>…</tr> 
     <tr>…</tr> 
    </tbody> 
    </table> 
</div> 

如何創建一個集合 「TBODY」? (後來我想遍歷它包含的所有元素(所有「tr」))。

+0

我一直在試圖與.getElementsBy ...但這裏所說:http://stackoverflow.com/questions/15191847/use-getelementbyid-on-htmlelement-instead-of-htmldocument |在vba中我們不能寫:Document.getElementById(「target」)。getElementsByTagName(「tr」)。 – ProtoVB

回答

1

這應該適用於你以後的工作。基本上你想選擇包含該表的元素,然後選擇該表的所有TR。

更新爲包括選擇表體。

dim Elements as Object 

Set Elements = Browser.Document.getElementsByClassName("mega-table")(0).getElementsByTag‌​Name("tbody")‌(0).getElementsByTag‌​Name("tr")‌ 
+0

我會進行調試,但我不認爲這是正確的,因爲這個腳本也會抓住「thead」下的「tr」,我說我只想要那些在「tbody」下的那些人 – ProtoVB

+0

查看更新後的答案。 –

-1
Sub IE() 

' Internet Controls Libraray 
' Microsoft HTML Controls Library 

Dim I As SHDocVw.InternetExplorer 
Dim D As HTMLDocument 
Dim C As MSHTML.IHTMLElementCollection 
Set I = New SHDocVw.InternetExplorer 

I.Visible = True 

I.Navigate ("http://www.stackoverflow.com") 

While I.Busy Or I.ReadyState <> READYSTATE_COMPLETE 
    DoEvents 
Wend 

Set D = I.Document 

Set C = D.getElementsByTagName("TR") 


End Sub