2016-08-17 5 views
0

VBAを使用してWebデータを取得しようとしています。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 |私たちは書くことはできません: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 
関連する問題