我花了几天尝试用VBA指令从雅虎财务获得资产负债表数据,例如公司的“ .getElementsByTagName”,但是它不起作用...什么也没发生,我被卡住了...
任何想法?参见下面的代码:
Sub Get_Data()
Dim url As String
Dim http As Object
Dim TR_col As Object, Tr As Object
Dim TD_col As Object, Td As Object
Dim row As Long, col As Long
Dim html As Object
Dim tbl As Object
'
On Error Resume Next
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0") 'CreateObject("MSXML2.ServerXMLHTTP.6.0")
url = "https//finance.yahoo.com/quote/AAPL/balance-sheet?p=AAPL"
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "text/xml"
http.Send
MsgBox http.responseText
Set html = CreateObject("htmlfile")
html.body.innerHTML = http.responseText
Set tbl = html.getElementById("Pos(r)")
row = 1
col = 1
Set TR_col = html.getElementsByTagName("TR")
For Each Tr In TR_col
Set TD_col = Tr.getElementsByTagName("TD")
For Each Td In TD_col
Cells(row, col) = Td.innerText
col = col + 1
Next
col = 1
row = row + 1
Next
End Sub
不幸的是,我没有足够的声誉来添加评论。我尝试编辑以下几行并确实得到了结果,但是不确定这是否是您真正想要的吗?
在https之后添加':'并将'POST'更改为'GET',以及删除'错误恢复'
url = "https://uk.finance.yahoo.com/quote/AAPL/history"
http.Open "GET", url, False