1

我是 vba 的初学者,当我运行代码时,我发现“tb”变量什么都不是。谁能帮我解决这个问题?如果我的代码不正确,如何通过 msxml 获取表数据。我在IE模式下测试过,效果很好。但它很慢

多谢

Dim dataArr() As Variant
Dim req As New MSXML2.XMLHTTP60
Dim URL As String
Dim HtmlDoc As New MSHTML.HTMLDocument
Dim tb As MSHTML.IHTMLElement
Dim tr As MSHTML.IHTMLElement
Dim td As MSHTML.IHTMLElement
Dim i As Long, j As Long

URL = "https://rahavard365.com/stock?last_trade=any"
req.Open "GET", URL, False
req.send

If req.Status <> 200 Then
    MsgBox req.Status & "-" & req.statusText
    Exit Sub
End If

HtmlDoc.body.innerHTML = req.responseText

Set tb = HtmlDoc.getElementById("DataTables_Table_0")


ReDim dataArr(1 To tb.Rows.Length, 1 To tb.Rows(1).Cells.Length)

i = 1: j = 1
For Each tr In tb.Rows
    For Each td In tr.Cells
        dataArr(i, j) = td.innerText
        j = j + 1
    Next td
    i = i + 1
    j = 1
Next tr

Sheet1.Range("A1").Resize(UBound(dataArr, 1), _
        UBound(dataArr, 2)).Value = dataArr

结束子

4

0 回答 0