2017-07-27 79 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

相關問題