我编写了一个脚本,使用querytable将数据从yahoo finance下载到excel中。它应循环遍历每个URL并下载数据,但它无法通过第二个循环并在.Refresh BackroundQuery失败:= False,错误代码为1004 - 发生了意外错误。
以下是代码:
rowOffset = 0
url = Worksheets("Yahoo codes").Range("b2").Offset(rowOffset, 0)
Do While url <> ""
With ActiveSheet.QueryTables.Add(Connection:="URL;" & url, Destination:=Worksheets("Yahoo Data").Range("A65536").End(xlUp).Offset(1, 0))
.RefreshStyle = xlOverwriteCells
.SaveData = True
.BackgroundQuery = True
.Refresh BackgroundQuery:=False
'.Refresh
End With
rowOffset = rowOffset + 1
url = Worksheets("Yahoo Data").Range("a2").Offset(rowOffset, 0)
Loop
答案 0 :(得分:1)
看起来你从B2获得了第一个URL,从A3获得了后续的URL ......
当你收到错误时,进入立即窗口(Ctl + G)并输入
?Worksheets("Yahoo Data").QueryTables(2).Connection
看看它是否正确。如果没有,我怀疑你的第二个url = ...
陈述是错误的。