我正在尝试创建一个 VBA 脚本,它可以让我对地址数据库进行地理编码。我已经在这个脚本上工作了几天,我认为有时我必须向专家寻求一些建议。所以,我希望脚本访问谷歌地图 url 并找到纬度和经度值。我设法从本地 XML 文档中提取了该信息,但我无法使用从谷歌地图服务器读取的 XML 来提取信息。对我有用的代码如下:
Sub XMLread()
Dim odc As DOMDocument
Dim nde As IXMLDOMNode
Dim lat As IXMLDOMElement
Dim url As String
Set odc = New MSXML2.DOMDocument
url = "C:\~path~\address.xml"
odc.Load (url)
For Each nde In odc.SelectNodes("GeocodeResponse/result/geometry/location")
Set lat = nde.SelectSingleNode("lat")
Debug.Print lat.Text
Next
End Sub
这段代码的作用是打开一个 xml 文件,找到“lat”的值并将其打印在调试窗口中。我打算将结果放在电子表格中,但这不会成为问题。问题在于直接从服务器中提取数据。我使用以下代码:
Sub XMLerverRead()
Dim odc As DOMDocument
Dim nde As IXMLDOMNode
Dim lat As IXMLDOMElement
Dim url As String
url="https://maps.googleapis.com/maps/api/geocode/xml?address=1+Infinite+Loop,+Cupertino,+Santa+Clara,+California+95014&sensor=false"
Set odc = New MSXML2.DOMDocument
odc.async = False
odc.Load (url)
For Each nde In odc.SelectNodes("GeocodeResponse/result/geometry/location")
Set lat = nde.SelectSingleNode("lat")
Debug.Print lat.Text
Next
End Sub
并且上面的代码没有返回任何东西,甚至没有错误。你能帮我看看如何修复这个代码吗?先感谢您。
PS我是VBA新手,但我对这个问题做了很好的研究。