为什么我的雅虎财经网址不适用于 querytables.add 网络连接

问题描述

我正在尝试创建一个可以从雅虎财经检索历史股票数据的工作表。该代码在六七个月前无需 365 订阅即可运行。我发现它现在不起作用。这是我的代码

Sub Button4_Click()
 
    Dim DataSheet As Worksheet
    Dim EndDate As Date
    Dim StartDate As Date
    Dim Symbol As String
    Dim qurl As String
    
    Dim SD As String
    Dim ED As String
    Application.ScreenUpdating = False
    Application.displayAlerts = False
    Application.Calculation = xlCalculationManual
    Set DataSheet = ActiveSheet
        StartDate = DataSheet.Range("B1").Value
        EndDate = DataSheet.Range("B2").Value
        Symbol = DataSheet.Range("B3").Value
        Range("C7").CurrentRegion.ClearContents
       
        SD = DateDiff("s","1/1/1970",StartDate)
        ED = DateDiff("s",EndDate)
       
  
        qurl = "https://query1.finance.yahoo.com/v7/finance/download/" & Symbol & "?period1=" & SD & "&period2=" & ED & "&interval=1d&events=history&includeAdjustedClose=true"
           With DataSheet.QueryTables.Add(Connection:="URL;" & qurl,Destination:=DataSheet.Range("C7"))
               .BackgroundQuery = True
               .TablesOnlyFromHTML = False
               .Refresh BackgroundQuery:=False
               .SaveData = True
           End With
           
           Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"),DataType:=xlDelimited,_
               TextQualifier:=xlDoubleQuote,ConsecutiveDelimiter:=False,Tab:=True,_
               Semicolon:=False,Comma:=True,Space:=False,other:=False
           Range(Range("C7"),Range("C7").End(xlDown)).NumberFormat = "mmm d/yy"
           Range(Range("D7"),Range("G7").End(xlDown)).NumberFormat = "0.00"
           Range(Range("H7"),Range("H7").End(xlDown)).NumberFormat = "0.00"
           Range(Range("I7"),Range("I7").End(xlDown)).NumberFormat = "0,000"
           
           'Worksheets("Grab data").Range("C7:xlDown").Select
           Application.Calculation = xlCalculationAutomatic

End Sub

错误一直显示为:

无法打开网址。并且互联网无法返回您请求的对象。

非常感谢您的帮助!

解决方法

发现此代码适用于 mac(没有 365 订阅)但不适用于 wondows。拥有 365 订阅的 Windows 只需使用网络查询即可快速获取。