Не получается вложить словарь в словарь - VBA
Формулировка задачи:
Друзья, доброго времени суток!
Не могу понять, почему у меня не получается вложить словарь в словарь.
В Watches почему-то пишет, что item "Names" в словаре Header содержит значение типа Variant/String. При этом BufHeader в порядке, все элементы отображаются нормально.
Может требуются какие-то дополнительные итерации, чтобы засунуть туда ссылку на объект?
Весь вечер мучаюсь, не могу понять в чем дело. Если кто знает в чем дело, подскажите, пожалуйста.
С уважением.
Листинг программы
- Set Header = CreateObject("Scripting.Dictionary")
- Dim ColName As Variant
- Dim CNames As Variant
- Dim Ctr As Long
- Dim BufNames As Object
- Set BufNames = CreateObject("Scripting.Dictionary")
- CNames = Split(NamesOfColumns, "|||")
- Ctr = 0
- For Each ColName In CNames
- BufNames.Add ColName, Ctr
- Ctr = Ctr + 1
- Next
- Header.Add "NAMES", BufNames
- NumOfColumns = Ctr
Решение задачи: «Не получается вложить словарь в словарь»
textual
Листинг программы
- Sub uuu()
- Dim x&
- Dim sd1 As Object, sd2 As Object
- '--------------------------------------------
- Set sd1 = CreateObject("Scripting.Dictionary")
- Set sd2 = CreateObject("Scripting.Dictionary")
- For Each el In Array("a", "b", "c")
- x = x + 1
- sd1.Item(el) = x
- Next
- Set sd2.Item("NAMES") = sd1
- sd_keys = sd2.keys
- sd_items = sd2.Items
- sd_sub_dic_keys = sd2.Item("NAMES").keys
- sd_sub_dic_items = sd2.Item("NAMES").Items
- End Sub
- Sub ttt()
- Dim x&
- Dim sd As Object
- '---------------------
- Set sd = CreateObject("Scripting.Dictionary")
- Set sd.Item("NAMES") = CreateObject("Scripting.Dictionary")
- For Each el In Array("a", "b", "c")
- x = x + 1
- sd.Item("NAMES").Item(el) = x
- Next
- sd_keys = sd.keys
- sd_items = sd.Items
- sd_sub_dic_keys = sd.Item("NAMES").keys
- sd_sub_dic_items = sd.Item("NAMES").Items
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д