每个循环包含不同值的变量
Variable that contains different value for each loop
我想从网上下载价格。当我将 symb
定义为常数值(例如 K15)时,这个概念就起作用了。但是现在,我想从不同的 link 下载数据,其中 symb
部分根据电子表格中单元格 G13 到 G22 的值而变化。 (换句话说,我想遍历从 G13 到 G22 的每一行——每一行都包含 symb
的不同值——并从各自的 link 下载数据)。
我尝试用一个简单的循环,在每个循环中定义变量 symb
:
For i = 1 To 10
Symb = Worksheets("Futures").Range("G12").Offset(i, 0).Value
Set qt = querysheet.QueryTables.Add( _
Connection:="URL;" & "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symb & ".cbt&f=sl1d1t1c1ohgv&e=.csv", _
Destination:=querysheet.Cells(5 + i, 1))
Next i
显然,它不是这样工作的。我假设不可能在循环内定义变量,是吗?有人可以提示我如何使它起作用吗?
您的连接字符串有问题。当我去掉 URL 字符串中的 .cbt
时,它起作用了。或者,您可能忘记包含一些字母,因此请在您的浏览器中调试它并获得正确的连接字符串,它应该可以工作。
您可能还想像这样修改目标并刷新 table:
Set qt = querySheet.QueryTables.Add( _
Connection:="URL;" & "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symb & "&f=sl1d1t1c1ohgv&e=.csv", _
Destination:=querySheet.Cells(5, 1))
qt.Refresh
你可以使用这样的数组
symb(1 to 10) as String
for i=1 to 10
symb(i)=cells(i,1)
next i
我想从网上下载价格。当我将 symb
定义为常数值(例如 K15)时,这个概念就起作用了。但是现在,我想从不同的 link 下载数据,其中 symb
部分根据电子表格中单元格 G13 到 G22 的值而变化。 (换句话说,我想遍历从 G13 到 G22 的每一行——每一行都包含 symb
的不同值——并从各自的 link 下载数据)。
我尝试用一个简单的循环,在每个循环中定义变量 symb
:
For i = 1 To 10
Symb = Worksheets("Futures").Range("G12").Offset(i, 0).Value
Set qt = querysheet.QueryTables.Add( _
Connection:="URL;" & "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symb & ".cbt&f=sl1d1t1c1ohgv&e=.csv", _
Destination:=querysheet.Cells(5 + i, 1))
Next i
显然,它不是这样工作的。我假设不可能在循环内定义变量,是吗?有人可以提示我如何使它起作用吗?
您的连接字符串有问题。当我去掉 URL 字符串中的 .cbt
时,它起作用了。或者,您可能忘记包含一些字母,因此请在您的浏览器中调试它并获得正确的连接字符串,它应该可以工作。
您可能还想像这样修改目标并刷新 table:
Set qt = querySheet.QueryTables.Add( _
Connection:="URL;" & "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symb & "&f=sl1d1t1c1ohgv&e=.csv", _
Destination:=querySheet.Cells(5, 1))
qt.Refresh
你可以使用这样的数组
symb(1 to 10) as String
for i=1 to 10
symb(i)=cells(i,1)
next i