2016-04-29 55 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值到这些变量。显然你必须做一些修改来循环遍历你的所有数据并填入相应的单元格。