У меня есть ссылка "https://maps.googleapis.com/maps/api/distancematrix/xml?origins=..."
, к которой я обращаюсь, чтобы получить данные XML-файла.
Файл XML:
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>London, UK</origin_address>
<destination_address>Manchester, UK</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value>14735</value>
<text>4 hours 6 mins</text>
</duration>
<distance>
<value>335534</value>
<text>336 km</text>
</distance>
</element>
</row>
</DistanceMatrixResponse>
Структура файла XML всегда одинакова.Мне нужно получить <text>4 hours 6 mins</text>
и <text>336 km</text>
в виде 4,6
для ячейки A1 и 336
для ячейки A2, скажем «База данных контактов».Также проблема в том, что <text>4 hours 6 mins</text>
иногда может быть <text>1 hour 3 min</text>
.Я могу сделать это с формулой, но возможно ли это с VBA?
Мне удалось заставить его работать так, чтобы все данные XML-файла находились в ячейке A1.Однако не в состоянии отделить то, что мне нужно, и вставить в две разные ячейки.
Sub GoogleAPI1()
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
Dim myurl As String
myurl = "https://maps.googleapis.com/maps/api/distancematrix/xml?origins=" & ThisWorkbook.Worksheets("Contact database").Range("R86").Value _
& "&destinations=" & ThisWorkbook.Worksheets("Contact database").Range("R87").Value & "&mode=" & ThisWorkbook.Worksheets("Contact database").Range("R88").Value _
& "&key=" & ThisWorkbook.Worksheets("Contact database").Range("R82").Value
xmlhttp.Open "GET", myurl, False
xmlhttp.send
ThisWorkbook.Worksheets("Contact database").Range("R92") = xmlhttp.responseText
End Sub