Здравствуйте уважаемые форумчане, нужна ваша помощь. В VBA полный чайник, поэтому искал готовое решение. Нашел такой код, но он у меня к сожалению не работает:
Код
Function YandexGeocode(sAddr As String) As String
Dim xhrRequest As XMLHTTP60
Dim sQuery As String
Dim domResponse As DOMDocument60
Dim LatLng As IXMLDOMNode
YandexGeocode = ""
Set xhrRequest = New XMLHTTP60
sQuery = "http://geocode-maps.yandex.ru/1.x/?geocode=" & Replace(sAddr, " ", "+";) & "&results=1"
xhrRequest.Open "GET", sQuery, False
xhrRequest.send
Set domResponse = New DOMDocument60
domResponse.LoadXML xhrRequest.responseText
Set LatLng = domResponse.SelectSingleNode("/ymaps/GeoObjectCollection/featureMember/GeoObject/Point/pos";)
YandexGeocode = LatLng.Text
End Function
Смысл идеи: Яндекс api по такому запросу выдает xml-файл из которого необходимо вставить в ячейку значение между тегами "pos"
Function YandexGeocode(sAddr As String) As String
Dim xhrRequest As Object
Dim sQuery As String
Dim temp As String
YandexGeocode = ""
Set xhrRequest = CreateObject("MSXML2.XMLHTTP")
sQuery = "http://geocode-maps.yandex.ru/1.x/?geocode=" _
& Replace(sAddr, " ", "+") _
& "&results=1"
xhrRequest.Open "GET", sQuery, False
xhrRequest.send
temp = Split(xhrRequest.responseText, "<pos>", 2)(1)
temp = Split(temp, "</pos>", 2)(0)
YandexGeocode = temp
End Function