2016-04-29 57 views
-3

我試圖將信息從Zillow拖入Excel表單。
我有列A中的屬性列表,格式爲zillows所需的格式,通過它們的API進入。我希望我的代碼爲列中的每個屬性運行,並將Zpid和Zestimate返回到列J和K中的表格中。我已經開始了以下範例,其中AA範圍是我已經將地址連接起來的地方,如上所述合併Zillows所需的字符串。我不知道它是否在列中工作,因爲當我使用Msg.Box Http.ResponseText我沒有看到它作爲一個字符串。但是,當我手動輸入網址時,返回的代碼(請參閱下文)會顯示。vba搜索xml結果並將特定信息拖入excel

Private Sub btnRefresh_Click() 
Dim W As Worksheet: Set W = ActiveSheet 
Dim Last As Integer: Last = W.Range("aa300").End(xlUp).Row 
Dim Purported As String 
Dim i As Integer 
For i = 2 To Last 
    Purported = Purported & W.Range("AH" & i).Value & "+" 
Next i 
Purported = Left(Purported, Len(Purported) - 1) 

Dim URL As String: URL = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1f9iajlak23_7kib9&address=" & Purported 
Dim Http As New WinHttpRequest 
Http. 

我測試它在瀏覽器並返回breif如下:

<zpid>88964519</zpid> 
<links> 
<homedetails> 
http://www.zillow.com/homedetails/7736-SE-72nd-Ave-Portland-OR- 97206/88964519_zpid/ 
</homedetails> 
<graphsanddata>http://www.zillow.com/homedetails/7736-SE-72nd-Ave-Portland-OR-97206/88964519_zpid/#charts-and-data 
</graphsanddata> 
<mapthishome>http://www.zillow.com/homes/88964519_zpid/</mapthishome> 
<comparables>http://www.zillow.com/homes/comps/88964519_zpid/</comparables> 
</links> 
<address> 
<street>7736 SE 72nd Ave</street> 
<zipcode>97206</zipcode> 
<city>Portland</city> 
<state>OR</state> 
<latitude>45.467339</latitude> 
<longitude>-122.589271</longitude> 
</address> 
<zestimate> 
<amount currency="USD">243161</amount> 

我要導入的「Zpid」和「Zestimate」到我的電子表格 每個

我是這個代碼的東西,並試圖學習新手。感謝我獲得的任何幫助。謝謝,

+0

[簡單谷歌搜索](https://technet.microsoft.com/en-us/magazine/2008.02.heyscriptingguy.aspx) –

+0

有幾個用於處理XML文件的庫。這是一個很好的資源:http://analystcave.com/vba-xml-working-xml-files/ –

回答

0

可能有各種各樣的方法來解決這個問題,並不清楚哪個部分給你帶來麻煩。也就是說,這裏是我的一個子例程的例子,它給出了一個有效的地址字符串的Zpid和Zestimate。希望它有幫助:

以下代碼要求將Microsoft XML添加到VBAProject引用。

Sub Zillow(addressPart As String) 
    Dim httpRequest As MSXML2.XMLHTTP, xmlParser As MSXML2.DOMDocument 
    Set xmlRequest = New MSXML2.XMLHTTP 
    Set xmlParser = New MSXML2.DOMDocument 

    requestURL = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1f9iajlak23_7kib9&address=" & addressPart 

    xmlRequest.Open "GET", requestURL, False 
    xmlRequest.Send 

    xmlParser.LoadXML xmlRequest.responseText 

    Zpid = xmlParser.SelectSingleNode("//zpid").Text 
    Zestimate = xmlParser.SelectSingleNode("//zestimate/amount").Text 
End Sub 

這將會使Zpid和Zestimate值到這些變量。顯然你必須做一些修改來循環遍歷你的所有數據並填入相應的單元格。