2016-08-30 67 views
0

代碼中的「引用URL列表」部分是我可以放入單個URL並且代碼正常工作的地方。但是我希望讓代碼更加靈活,以便能夠遍歷我的URL列表(理想情況下只更改我的代碼的一部分,或者可能是另一個小的調整)。下面是代碼:使用.Open遍歷URL列表(在VBA中解析JSON)

Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1") 
MyRequest.Open "GET", "reference URL list" 
MyRequest.Send 

Dim Json As Object 
Set Json = JsonConverter.ParseJson(MyRequest.ResponseText) 

我知道有多種方法可以解決這個 - 雖然我不能找到將略有增加我的方法的具體信息。我非常感謝幫助。

Kyle

回答

0

此代碼應該做你想做的。關鍵的想法是使用一個數組來保存您想要發送HTTP請求的網站列表。

如下所示,您不必使用鍵入到VBA中的數組,您也可以在Excel中使用Range

下面的代碼:

Public Sub HTTP_Req() 
    Dim MyRequest As Object: Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1") 
    'Add all Urls you want to send a HTTP request to, in an Array 
    Dim MyUrls: MyUrls = Array("www.google.com", "www.yahoo.com", "www.bing.com") 
    Dim i As Long 
    Dim Json As Object 

    For i = LBound(MyUrls) To UBound(MyUrls) 
     With MyRequest 
      .Open "GET", MyUrls(i) 
      .Send 
      Set Json = JsonConverter.ParseJson(.ResponseText) 
      'Do something with the JSON object here 
     End With 
    Next 
End Sub 
+0

感謝,@RyanWildry - 完美的作品。我的謎題的最後一部分是循環瀏覽JSON文本(並解析),並在沒有更多JSON字符串(每個字符串集中不可知的數字)時停止循環。所以,基本上只是一些類型的循環,一旦沒有額外的字符串(我已完成解析等),將允許我停止。我已經看到「循環直到/雖然」的數據嵌入在Excel行/列的建議 - 但事實上,我要去一個網頁和拉下JSON使我更加困難。 – Kyle

+0

如果您有其他問題,請隨時發起一個新問題。我們總是願意提供幫助。最初的問題是關閉的嗎? –

+0

絕對 - 謝謝! – Kyle