Я понимаю, что есть много похожих вопросов, но ни один из тех, на которые я смотрел, не решил мою проблему. Я совершенно новичок в VBA и не понимаю, как работают его структуры данных.
Я получаю строку JSON из веб-API и пытаюсь напечатать указанный c поле в электронную таблицу. JSON имеет следующий формат:
{
"responses":[
{
"responseId":"someId",
"values":{
...,
"QID2":1
}
},
{
"responseId":"someOtherId",
"values":{
...,
"QID2":2
}
},
...
]
}
Интересующие меня поля - это QID2, которые всегда имеют значение в диапазоне [1,3]. Вот мой код для разбора и печати этого JSON:
'Load response into sheet
Dim Parsed As Dictionary: Set Parsed = JsonConverter.ParseJson(oHttp.responseText)
Dim Responses As Variant
ReDim Responses(Parsed("responses").Count)
Dim Response As Dictionary
Dim i As Long
i = 0
For Each Response In Parsed("responses")
Responses(i) = Response("values")("QID2")
Next Response
Sheets("Sheet1").Range(Cells(1, 1), Cells(Parsed("responses").Count, 1)) = Responses
Я проверил с помощью Debug.Print, что Responses
содержит различные значения (комбинация из 1, 2 и 3). Но вывод этого кода печатает только столбец 1 на листе. Как правильно распечатать массив Responses
на листе?
РЕДАКТИРОВАТЬ: При ближайшем рассмотрении мой l oop кажется странным в том, что он не увеличивается i
(я скопировал этот синтаксис откуда-то ). Это правильно?