Могу ли я перебирать пары ключ/значение в коллекции VBA?
В VB.NET я могу перебирать пары слова/значения словаря:
Dictionary<string, string> collection = new Dictionary<string, string>();
collection.Add("key1", "value1");
collection.Add("key2", "value2");
foreach (string key in collection.Keys)
{
MessageBox.Show("Key: " + key + ". Value: " + collection[key]);
}
Я знаю, что в VBA я могу перебирать значения объекта Collection:
Dim Col As Collection
Set Col = New Collection
Dim i As Integer
Col.Add "value1", "key1"
Col.Add "value2", "key2"
For i = 1 To Col.Count
MsgBox (Col.Item(i))
Next I
Я также знаю, что я делаю это с помощью объекта Scripting.Dictionary VBA, но мне было интересно, возможно ли это с коллекциями.
Можно ли итерации через пары ключ/значение в коллекции VBA?
Ответы
Ответ 1
вы не можете получить имя ключа из коллекции. Вместо этого вам нужно будет использовать объект Dictionary:
Sub LoopKeys()
Dim key As Variant
'Early binding: add reference to MS Scripting Runtime
Dim dic As Scripting.Dictionary
Set dic = New Scripting.Dictionary
'Use this for late binding instead:
'Dim dic As Object
'Set dic = CreateObject("Scripting.Dictionary")
dic.Add "Key1", "Value1"
dic.Add "Key2", "Value2"
For Each key In dic.Keys
Debug.Print "Key: " & key & " Value: " & dic(key)
Next
End Sub