使用VBA从Yahoo Finance检索数据(资产负债表而非股票)

问题描述 投票:0回答:1

我花了几天尝试用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 
excel vba finance yahoo-api
1个回答
0
投票

不幸的是,我没有足够的声誉来添加评论。我尝试编辑以下几行并确实得到了结果,但是不确定这是否是您真正想要的吗?

在https之后添加':'并将'POST'更改为'GET',以及删除'错误恢复'

url = "https://uk.finance.yahoo.com/quote/AAPL/history"
http.Open "GET", url, False
© www.soinside.com 2019 - 2024. All rights reserved.