2017-04-17 11 views
1

制約のため、Excelのvbaで醜いHTMLを解析する必要があります。 HTMLの問題は要素IDがないことです。私は、それぞれがいくつかの行を持つ多くのラベルのないテーブルを持つページを持っています。私が構築できる唯一のことは、私が引き出す必要があるセルの1つに識別子があることです。 ID「xtu_id」がテーブルの行のセルに値として表示されるたびに、その行からデータを取得する必要があります。だから、次のようになります。excel vbaでHTMLを解析する際にエラーが発生する

<tr> 



<td> 

        col1 

</td> 


<td> 

        col2 

</td> 


<td> 

        xtu_id 

</td> 


<td> 

        col4 

</td> 


</tr> 

今私はxtu_idは、この行に存在して見ていることに、私は、Excelシートにその行のすべてのセルをダンプしたいです。ここで私は他のstackoverflowの記事を読んでから使用したものである:

Sub CommandButton1_Click() 

    Dim appIE As InternetExplorerMedium 
    Set appIE = New InternetExplorerMedium 

    With appIE 
     .Navigate "https://my_website" 
     .Visible = True 
    End With 

    Do While appIE.Busy Or appIE.ReadyState <> 4 
     DoEvents 
    Loop 

    Set mydata = appIE.Document.getElementsByTagName("tr") 

    For Each e In mydata 
     For Each c In e 
      If c.Cells().innerText Like "xtu_id" Then 
       myValue = c.Cells().innerText 
       MsgBox (myValue) 
      End If 
     Next c 
    Next e 
    Set appIE = Nothing 

End Sub 

このコードは、私が文[各...のために]に到達するまで、私は悩み」を検索するために、各行の各セルをループを持っている作品xtu_id "テキスト。これを行う方法に関するアイデア?

答えて

1

これを試してみてください:迅速な回答スコットのため

For Each c In e.Cells 
    If c.innerText Like "xtu_id" Then 
     myValue = e.innerText 
     MsgBox (myValue) 
    End If 
Next c 
+0

おかげで、私はスワップことで、値を取得していないが、コードが出てエラーではありませんでした。おそらく私のif文が真ではない – barker

+0

行単位でデバッグをしましたか? [回答](http://stackoverflow.com/questions/43458256/retreiving-td-tag-from-table-on-website-using-vba-and-put-into-excel/43459103#43459103)私は以前に提供した助けるかもしれない。 –

+0

助けてくれてありがとうScott、私はc.innertextのe.innertextを入れ替えてセルの値を引っ張り、私が何を得たのかを知りました。あなたの答えは正しい、それは私が引っ張ってみたい文字列が明確でないために私のせいだった。再度、感謝します! – barker

関連する問題