Каждый цикл, который вы переустанавливаете, r = 1: c = 1
, так что вы можете перезаписывать.Инициализируйте r вне цикла, а затем проверьте, где его нужно увеличить.Возможно, только в рамках функции.
Вам необходимо обеспечить приращение переменной c
, в то время как r
остается постоянным, чтобы держать все в одной строке.
rating
и all
являются словарями, поэтому вы должны получить доступ к элементам в них по ключу.last_battle_time
представляется ключом для словаря: 507350581
(id?)
Ниже приведено считывание вашего json из ячейки и просто показывает, как осуществляется доступ к значениям.Я не использую вашу функцию.Вместо этого я увеличил бы r
во время цикла.
Option Explicit
Sub test()
Dim json As Object
Set json = JsonConverter.ParseJson([A1])("data")("507350581")
Dim battle As String, nickname As String '<just for sake of ease using this datatype
battle = json("last_battle_time")
nickname = json("nickname")
Dim rating As Object, all As Object
Set rating = json("statistics")("rating")
Set all = json("statistics")("all")
Dim r As Long, c As Long
r = 2: c = 1
With ActiveSheet
.Cells(r, 1).Resize(1, rating.Count) = rating.Items
.Cells(r, 1 + rating.Count).Resize(1, all.Count) = all.Items
.Cells(r, 1 + rating.Count + all.Count) = nickname
.Cells(r, 2 + rating.Count + all.Count) = battle
End With
'rating.keys '<= array of the keys
'rating.items '<== array of the items
'rating and all can be passed to your function.
Stop
End Sub