【发布时间】:2021-01-05 21:45:05
【问题描述】:
我正在尝试创建一个可以从 yahoo Finance 检索历史股票数据的工作表。该代码在 6 或 7 个月前有效,无需 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", "1/1/1970", 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
错误一直显示为:
无法打开网址。并且互联网无法返回您请求的对象。
非常感谢您的帮助!
【问题讨论】:
-
雅虎关闭那里的免费金融服务。
-
确实,该 URL 现在返回一个
HTTP 401
标签: excel vba yahoo-finance