0

このウェブサイトのこのテーブルからデータの行を取得しようとしています: http://www.nasdaq.com/symbol/neog/financials?query=balance-sheet

これで、次を使用して「総負債」行を取得できます

doc.getelementsbyclassname("net")(3).innertext 

しかし、普通株などの他のデータ行を取得する方法がわかりません。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Range("bscode").Row And _
Target.Column = Range("bscode").Column Then
Dim IE As New InternetExplorer
IE.Visible = True
IE.navigate "http://www.nasdaq.com/symbol/" & Range("bscode").Value & "/financials?query=balance-sheet&data=quarterly"

Do
 DoEvents

Loop Until IE.readyState = READYSTATE_COMPLETE

Dim Doc As HTMLDocument
Set Doc = IE.document
Dim sD As String
sD = Doc.getElementsByTagName("tr")(8).innerText

MsgBox sD

Dim aD As Variant
aD = Split(sD, "$")
Range("bs").Value = aD(1)
Range("ba").Value = aD(2)
Range("bb").Value = aD(3)
Range("bc").Value = aD(4)

End If
End Sub

それが役立つ場合は、取得したい HTML ソースと強調表示された tr があります。

HTML コードのスクリーンショット

問題は、テーブルの行データを見つける方法です。他の行のデータを取得する方法を誰かに説明してもらえますか? よろしくお願いします!

4

1 に答える 1

0

私はいくつかの試行錯誤を行い、この方法で正しい参照を取得することができました:

Dim eTR As Object, cTR As Object, I as Integer 'I used object, because I did late binding
Set cTR = Doc.getElementsByTagName("tr")

i = 0

For Each eTR In cTR

    If Left(eTR.innerText, 3) = "Com" Then

        Debug.Print "(" & i; "): " & eTR.innerText

    End If

    i = i + 1

Next

次に表示される即時ウィンドウ

(308): 普通株式 ... (たくさんのスペース) ... $5,941$5,877$5,773$3,779

次に、このステートメントをテストしました。

sd = Doc.getElementsByTagName("tr")(308).innerText
Debug.Print sd

そして、同じ結果を得ました。

于 2015-10-21T14:05:43.623 に答える