每个循环包含不同值的变量

问题描述:

我想从互联网上下载价格。当我将symb定义为常数值(例如K15)时,该概念起作用。但现在,我想从不同的链接下载数据,其中symb部分根据电子表格中单元格G13到G22的值而变化。 (换句话说,我想通过从G13到G22的每一行 - 每个包含symb的不同值 - 并从相应链接下载数据)。每个循环包含不同值的变量

我试图与一个简单的循环,定义变量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 

显然,它不喜欢这个工作。我认为不可能在循环中定义一个变量,是吗?有人能给我一个提示,我怎么能做到这一点?

+1

这都不明显,它没有按”像这样工作。 “这不起作用”是什么意思?你有错误吗?如果是这样,哪一行会引发错误,错误消息是什么意思?如果没有错误,请描述观察结果与预期结果的差异。 – 2015-04-01 21:27:35

+0

您可能想简单地做:'Destination:= querySheet.Cells(5,1))',因为添加每个qt都会自动插入列。 – 2015-04-01 21:29:24

+0

感谢您的回复! VBA不显示错误消息,但我得到的结果只是“.cbt,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N /一个”。之前,当我刚刚拥有一个恒定的symb值时,我收到了类似“CK15.cbt,376.25,”3/31/2015“,”2:09 pm“, - 18.25,394.00,398.50,375.75,302825” – StefanW 2015-04-01 21:36:50

你的连接字符串有一些东西。当我在URL字符串中删除.cbt时,它可以工作。或者,您可能忘记了包含一些字母,因此请在浏览器中进行调试,并确保Connection字符串正确,并且它应该可以正常工作。

您可能还需要修改的目的,像这样,并刷新表:

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 
+0

谢谢!查询表是否可能没有从右到左完成,而是从左到右?现在,似乎每个新的单元格都会将循环中的值推到右侧。这意味着,来自最后一个循环的值在A5中,而来自第一个循环(在6个循环中)的值在F5中找到。 – StefanW 2015-04-07 21:38:51

+0

添加QT将插入到现有数据中,这就是您看到您所看到的内容的原因。不用回去再试一遍代码,试试吧:'Destination:= querySheet.Cells(5,i)'。这应该把第一列第一列,第二列第二列等 – 2015-04-07 21:52:03

+0

非常好,谢谢! – StefanW 2015-04-07 22:15:37

,你可以使用一个数组这样

symb(1 to 10) as String 
    for i=1 to 10 
     symb(i)=cells(i,1) 
    next i