我是 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
结束子