Я новичок в Excel VBA.
Я хочу иметь словарь с ключами типа integer и значениями типа Dynami c array of integer.
Почему приводит ли следующий код к несоответствию типов при его выполнении?
Первый оператор if
устанавливает словарь с ключом = 0 и массивом [0]
Второй if
оператор пытается изменить ключ, чтобы он имел значение массив [0,1]
Sub tester()
' prepare graph adjacency dictionary
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim a() As Integer
Dim ub As Integer
If (Not dict.Exists(0)) Then
ReDim a(0 To 0)
a(0) = 0
dict.Add 0, a(0)
End If
If (dict.Exists(0)) Then
ub = UBound(dict(0)) ' type mismatch here ? why ?
ReDim a(0 To ub)
a = dict(0)
ReDim Preserve a(0 To ub + 1)
a(ub + 1) = 1
dict(0) = a
End If
End Sub