Есть ли в VBA структура словаря?
VBA имеет объект коллекции:
Dim c As Collection
Set c = New Collection
c.Add "Data1", "Key1"
c.Add "Data2", "Key2"
c.Add "Data3", "Key3"
'Insert data via key into cell A1
Range("A1").Value = c.Item("Key2")
Объект data-structure Collection
выполняет поиск на основе dictionary ключей с использованием хеша, поэтому dictionary это быстро.
Вы можете использовать data-structures функцию Contains()
, чтобы проверить, содержит vba-macros ли конкретная коллекция ключ:
Public Function Contains(col As Collection, key As Variant) As Boolean
On Error Resume Next
col(key) ' Just try it. If it fails, Err.Number will be nonzero.
Contains = (Err.Number = 0)
Err.Clear
End Function
Редактировать 24 июня 2015 г.: короче vb6 Contains()
благодаря @TWiStErRob.
Редактировать 25 сентября 2015 г.: добавлено dict Err.Clear()
благодаря @scipilot.
vba
dictionary
data-structures
vb6
Есть ли в VBA структура словаря?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.