Страницы: 1
RSS
Из xml-файла вставить в ячейку значение между тегами, Excel + Яндекс API
 
Здравствуйте уважаемые форумчане, нужна ваша помощь. В 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
С уважением,
Федор/Все_просто
 
Спасибо, работает!
Страницы: 1
Наверх