2017-07-27 1 views
0

私は、Yahoo FinanceからWEBSERVICE関数を使用してデータを取得し、ループを介してデータを取り込もうとしています。私は問題がアポストロフィであることを知っています。なぜなら2つの変数があるので、それらを区切る方法がわかりません。私は "&シンボル&"の組み合わせを試したが、ダブルアポストロフィは何も働かなかった。問題を区切る、予想される文字列に変数を挿入するにはどうすればよいですか? 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

2つの置換操作を使用してセル値を文字列に挿入します。

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

関連する問題