Недопустимый вызов процедуры или аргумент (ошибка 5) при попытке поместить ответ из API в лист - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь сделать лист Excel, чтобы узнать текущую температуру в разных городах. Я совершенно новичок в этом API. Мне удалось отправить запрос и получить информацию обратно. Но когда я пытаюсь поместить результат в лист, я не так успешен. Это код:

Sub VBAJson()

Dim xml_obj As MSXML2.XMLHTTP60
Set xml_obj = New MSXML2.XMLHTTP60

xml_obj.Open "GET", "the UrltoWeatherAPI", False


xml_obj.send


Dim weather As Object

Set weather = JsonConverter.ParseJson(xml_obj.responseText)



Dim Visa As Worksheet
Set Visa = Worksheets("Visa")   

Visa.Range("B2") = weather("city")("name")              'this line works
Visa.Range("B3") = weather("list")("0")("main")("temp") 'this gives me the error
                 '           ^      ^       ^
                 '      variant/ variant/  variant/
                 '      string   object/   string
                 '               dictionary


End Sub

Первая строка работает и помещает название города в ячейку B2, вторая строка выдает ошибку. «Недопустимый вызов процедуры или аргумент (ошибка 5)» Кто-нибудь знает, в чем может быть проблема?

Так выглядят первые несколько строк ответа в браузере. Это те, которые я использую в строке, которая завершается неудачей.

cod:                 "200"
message:             0
cnt:                 40,
list:
    0:
        dt:          1583442000,
        main:   
            temp:    274.27 

В конце это выглядит так:

city:
    id:              2697703
    name:            "Landvetter"

edit Я проверил содержимое weather и содержит пять элементов, один со значением "list". Когда я проверял этот элемент, он содержал 40 элементов типа «Вариант / Объект / Словарь». Ни один из них не имел значения.

Каждый из 40 предметов содержал 7 предметов, один из которых был "main", который я пытаюсь использовать.

Кажется, что 40 предметов вызывают проблему. В ответе JSON они просто выглядят как «0», «1», «2» и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...