2017-07-27 50 views
0

我想通过WEBSERVICE函数从Yahoo Finance检索数据,然后通过循环填充数据。我知道这个问题与撇号有关,因为有两个变量我不确定如何分隔它们。我试过“&符号&”的组合,双撇号,没有任何工作。如何在预期的字符串中插入变量,分隔问题? Excel-VBA

任何帮助非常感谢,谢谢!

的代码是:

Sub marketdata() 

    Dim symbol As String 
    Dim parameter As String 
    Dim rows As Long 
    Dim cols As Long 

    For rows = 2 To 5700 
     For cols = 3 To 20 
      symbol = Cells(rows, 2).Value 
      parameter = Cells(1, cols).Value 
      Cells(rows, cols).Value = "=WEBSERVICE _ 
      (""https://download.finance.yahoo.com/d/quotes.csv?s=SYMBOL&f=PARAMETER"")" 
     Next cols 
    Next rows 

End Sub 

这是我的第一篇,请让我知道如果我需要澄清什么。

回答

0

我会使用两个替换操作将单元格值放入字符串中。

Dim sp As String 
Dim rows As Long 
Dim cols As Long 

For rows = 2 To 5700 
    For cols = 3 To 20 
     sp = "=WEBSERVICE(""https://download.finance.yahoo.com/d/quotes.csv?s=%1%&f=%2%"")" 
     sp = Replace(Replace(sp, "%1%", Cells(rows, 2).Value), "%2%", Cells(1, cols).Value) 
     Debug.Print sp 
     Cells(rows, cols).Value = sp 'should this be .Formula? 
    Next cols 
Next rows 

您可能还希望开始包括父工作表参考。

+0

非常感谢!这工作完美!公式和价值都评估为一个公式在这里对我来说。 –

+0

是的,Excel通常会*将解释公式放入.Value中作为公式,但这样做并不正确;它仅仅意味着你的编程依赖于VBA'开销'来纠正错误。尝试使用格式为文本的单元格。 – Jeeped

相关问题