2017-12-18 14 views
0

私は、ユーザーがスプレッドシートに開始日と終了日を入力できるように動的に更新するAPIを持っており、マクロはその特定の日付範囲のデータを取り戻します。API URL内のVBA動的日付

私が抱えている問題は、API URL内でStartDateとEndDateのパラメータが文字列としてyyyy-mm-ddの形式であることです。

私はURL = "https:// ...&StartDate = Format(Date(),"yyyy-mm-dd") & EndDate=Format(Date(),"yyyy-mm-dd")&..."を試しました(...はURLの前後のものです)。

私が探していたURLのタイプの例は次のとおりです。

https://www.googleapis.com/analytics/v3/data/ga?ids=ga:12345&startdate=2008-10-01&end-date=2008-10-31&metrics=ga:sessions,ga:bounces

私は、URL文字列内の余分な引用符で追加することで周りもがプレイしましたが、私は取得するように見えることはできませんそれは機能する。

私は、日付が認識されていないと言い続けているので、私は日付をハードコードすれば実行することしかできません。

提案がありますか?

答えて

0

投稿されたコードにいくつかの問題があります。 &は、VBAの連結演算子です。文字列としてアンパサンドを返していることを確認するには""に囲み、には文字列を一緒に結合しないでください。

私は、うまくいけばアイデアを説明し、あなたがバックアップして実行するいくつかのサンプルコードを追加しました。コードはcreatedURLtestURLが等しい場合はTrue、そうでない場合はFalseを出力します。

コード


Option Explicit 

Public Sub FormatExample() 
    'This is the example provided 
    Dim testURL As String 
    testURL = "https://www.googleapis.com/analytics/v3/data/ga?ids=ga:12345&" & _ 
       "startdate=2008-10-01&end-date=2008-10-31&metrics=ga:sessions,ga:bounces" 

    'This is a built string example 
    Dim createdURL As String 
    createdURL = "https://www.googleapis.com/analytics/v3/data/ga?ids=ga:12345" & _ 
       "&startdate=" & Format(#10/1/2008#, "yyyy-mm-dd") & _ 
       "&end-date=" & Format(#10/31/2008#, "yyyy-mm-dd") & _ 
       "&metrics=ga:sessions,ga:bounces" 

    'Print out if they are equal 
    Debug.Print createdURL = testURL 

End Sub