VBA цикл по словарным ключам и элементам - PullRequest
0 голосов
/ 19 сентября 2019

нубский вопрос.Я понимаю, что об этом, возможно, уже спрашивали, но мне все еще нужна помощь, так как я никогда не работал со словарями в VBA.

Я нашел хороший кусок кода, который превращает столбцы в словарь, и это именно то, что мне нужно(см. ниже), но как только он преобразует диапазон в словарь, я не могу понять, как с ним что-то сделать.даже простой Debug.Print или перебирать значения ключей.Я просмотрел бесчисленное множество статей и видео на YouTube (объясняющих словари, но ничего «продвинутого»), я что-то упустил.

Sub Test()
    RangeToDict2 Range("H2:I36")

    Debug.Print RangeToDict2.Item("a") 'FAILS HERE
End Sub
Function RangeToDict2(ByVal R As Range) As Dictionary
    Set RangeToDict2 = New Dictionary
    i = 1
    Do Until i >= (R.Rows.Count * R.Columns.Count)
        RangeToDict2.Add R(i), R(i + 1)
        Debug.Print R(i) & ", " & R(i + 1)
        i = i + 2
    Loop
End Function

1 Ответ

1 голос
/ 19 сентября 2019

Вы должны прочитать учебник или два по словарям сценариев, как это предлагает braX.

Особая проблема в вашем примере заключается в том, что RangeToDict2 - это функция с параметром Range, которая возвращает словарьпоэтому Debug.Print RangeToDict2.Item("a") на самом деле не имеет смысла, так как Item("a") - это не диапазон.Скорее всего, вам понадобится что-то похожее на это:

Sub Test()

Dim d As Object

Set d = RangeToDict2(Range("A1:B3"))
Debug.Print d.Item("a") 'FAILS HERE

End Sub

После этого вы можете просмотреть ключи или элементы d.

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