Попытался при помощи функций описанных по ссылке провести преобразование. Результата не дало.
После преобразования тот же ответ:{"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"ìîñêâà","results":"10","found":"0"}},"featureMember":[]}}}
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 16:54:28
ТОесть. В первом случае я просто не вижу этого ответа из за кодировки?? ухххх. То есть мне нужно взять в своем макросе переменную txt которую я получил методом txt = .responsetext из кирилического формата перевести в URL т.е выполнить преобразования. Функцией, которая преобразовывает Unicode (русский текст) в URLencode (Percent Encoding) по ссылке выше Так?
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 16:28:36
Сформирую вопрос более понятным образом. Как показано выше? я формирую запрос. Ответ на этот запрос я присваиваю переменной "txt" txt = .responsetext
Результат: текстовая переменная txt равна {"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"ìîñêâà","results":"10","found":"0"}},"featureMember":[]}}}
как видно в этом ответе ерунда.
Если просто кликнуть на запрос то в браузере появляется ответ: {"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"москва","results":"10","found":"1"}},"featureMember":[{"GeoObject":{"metaDataProperty":{"GeocoderMetaData":{"precision":"other","text":"Россия, Москва","kind":"province","Address":{"country_code":"RU","formatted":"Россия, Москва","Components":[{"kind":"country","name":"Россия"},{"kind":"province","name":"Центральный федеральный округ"},{"kind":"province","name":"Москва"}]},"AddressDetails":{"Country":{"AddressLine":"Россия, Москва","CountryNameCode":"RU","CountryName":"Россия","AdministrativeArea":{"AdministrativeAreaName":"Москва"}}}}},"name":"Москва","description":"Россия","boundedBy":{"Envelope":{"lowerCorner":"36.803079 55.142226","upperCorner":"37.967466 56.021286"}},"uri":"ymapsbm1://geo?data=Cgg1MzAwMDA5NBIa0KDQvtGB0YHQuNGPLCDQnNC-0YHQutCy0LAiCg2GeBZCFQEGX0I,","Point":{"pos":"37.617698 55.755864"}}}]}}}
и это уже прямо то что нужно.
Вопрос. 1.Как мне используя VBA получить ответ как во втором случае ( при клике) и записать его в переменную стринг = txt ( а из текстовой переменной я уже извлеку все что мне нужно) 2. Почему мой макрос вместо нормального ответа дает ерунду.
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 15:34:03
ОГО)) Действительно по ссылке дает результат))) А почему я немогу его прочитать командой txt = .responsetext ???
Прошу подсказать как результат по ссылке мне запихать в переменную??
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 15:12:52
чудо чудное Так я в макросе и поправил у меня такой ответ что не так? {"response":{"GeoObjectCollection":{"metaDataProperty":{"GeocoderResponseMetaData":{"request":"ìîñêâà","results":"10","found":"0"}},"featureMember":[]}}}
Может библиотеки не хватает?
Изменено: - 05.06.2025 15:16:37
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 15:07:37
URL дописал. Может это чтото связано с правилами чтения JSON ответов?
VBA API запрос, ответ API
Пользователь
Сообщений: Регистрация: 03.07.2024
05.06.2025 14:38:57
Добрый день! Формирую следующий запрос для получения координат города Москва и не могу получить ответ.
Private Sub CommandButton1_Click() Dim objHTTP As Object Dim url, inn, txt, kapcha, uuu As String Dim n, k As Long Set objHTTP = CreateObject("MSXML2.XMLHTTP")
With objHTTP url = "" .Open "GET", url, False .setRequestHeader "Content-Type", "application/json; charset=utf-8" .setRequestHeader "user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.56" .Send
txt = .responsetext Debug.Print txt
End With
End Sub
В ответ приходят пустые заголовки...(((( Проверял запрос через сайт там все норм. Ответ идет.
Может что-то связано с особенностью получения API ответа Json ?? Прошу помощи с решением этого вопроса.
Изменено: - 05.06.2025 14:59:46
Запуск События, Удаленный запуск события Change()
Пользователь
Сообщений: Регистрация: 03.07.2024
10.07.2024 12:04:39
Подскажите плизз Есть код работающий по событию:
TextBox5_Change() ....... End Sub
Как запустить этот код принудительно? из другого места программы при изменении TextBox5.Text
QueryTables.Add смещение
Пользователь
Сообщений: Регистрация: 03.07.2024
03.07.2024 14:53:54
Форумчане добрый день! Прошу хелпа. Суть вопроса следующая: Написал код для запроса с сайта телефонных кодов сотовых операторов.
Sub telecod(cod As String)
Dim x, z, k, zz As Integer Dim q, w, w1, w2, s, ss, sss, kod As String Dim wq, qqq As String Dim f As Boolean
q = Right(cod, 3) Worksheets("900").Activate
With ActiveSheet.QueryTables.Add(Connection:= _ "URL;; & q, Destination:=Range("$A$1"))
Все работает, на лист выводит таблицу соответствия, НО при повторном запроса таблица размещается не на том же месте а со смещением вправо. Как сделать так чтобы при следующем запросе таблица размещалась на том же месте а не убегала? Скорее всего надо удалить существующую безвозвратно вместе с соединением но как?