【问题标题】:Yahoo historical quotes in Excel - follow onExcel 中的 Yahoo 历史报价 - 继续
【发布时间】:2017-10-28 13:57:51
【问题描述】:

我在 Yahoo 博客上看到说明他们已停止支持 iChart,我看到此回答 Yahoo Finance Historical data downloader url is not working 讨论历史数据的新请求格式。

这是我用来下载历史数据的原始 sn-p 代码(它是在每个股票代码的电子表格中创建一个选项卡的循环的一部分)

With Sheets(SheetName).QueryTables.Add(Connection:="URL;http://ichart.finance.yahoo.com/table.csv?s=" & yahoosymbols & "&a=09&b=29&c=1984&d=04&e=12&f=2020&g=w&ignore=.csv", Destination:=DestinationRange)
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = False
        .FieldNames = False
    End With

这是使用新版本 URL 的新代码

With Sheets(SheetName).QueryTables.Add(Connection:="URL;http://query1.finance.yahoo.com/v7/finance/download/" & yahoosymbols & "?period1=947570400&period2=1577858400&interval=1wk&events=history&crumb=RhdXrQKrUXZ", Destination:=DestinationRange)
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = False
        .FieldNames = False
    End With

如果我复制并粘贴 url(为 yahoosymbols 变量替换股票代码),那么它在浏览器中可以正常工作。

但是当我运行这段代码时,我得到一个 excel 1004 错误并说它无法打开 url

有什么想法吗?我不是 VBA 人,所以可能会犯一个真正的业余错误。谢谢

【问题讨论】:

  • 我建议 Record Macro 手动构建网络查询并将生成的代码与您的代码进行比较。如果您的 Excel 版本支持,另一个选项可能是 Power Query。
  • 链接没有问题。雅虎最近将 HTTP 迁移到 HTTPS 并且还需要 cookie(注意 URL 末尾的“Crumb”)? finance.yahoo.com/quote/YHOO/… 上的“下载数据”链接现在有了。如果您复制链接并在另一个浏览器中打开它,您会注意到它不会打开。您需要与 Yahoo Finance 服务器建立会话才能获取 crumb。我以前没有这样做过,所以必须检查
  • 谢谢各位。我实际上得到了这个人的解决方案。 xlautomation.com.au/free-spreadsheets/… 查询的方法与我使用的方法有点不同,但很好地处理了所有 cookie 和 crumb 的东西

标签: vba excel yahoo-api yahoo-finance


【解决方案1】:

您使用的网址不再有效。 但是既然你不是 vba 人,你只需要 Excel 中的 YF 数据,你为什么不使用 Deriscope Excel 插件呢? 免责声明:我是 Deriscope 的作者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    相关资源
    最近更新 更多