我正在尝试使用VBA将多维数组中的列表存储在字典中。
倒数第二行给出了错误的尺寸错误。我知道keyArray是2维的,但是我想将第一个项目存储在keyArray中,这是一个列表,依此类推。
keys是一个数组,用于存储表中的主键,对此没有任何问题。
For I = 0 To 15
'Data which should be going in for that key
If I < 8 Then
keyArray(I, 0) = dptData(I)
Else
keyArray(I, 0) = data2(I - 8)
End If
keyArray(I, 1) = keys(I, 0)
keyArray(I, 2) = keys(I, 1)
keyArray(I, 3) = keys(I, 2)
dict.Add keys(I, 0) & " " & keys(I, 1) & " " & keys(I, 2), keyArray(I)
Next I
答案 0 :(得分:0)
从2D数组省略下标并不会自动将其切片为1D数组。如果您需要完全的效率以及可以在Excel之外使用的功能,请使用this function。 This function使用Index
工作表函数执行切片,因此将无法在Excel外部工作(效率也较低)。
假设您将函数命名为Slice
,这应该可以做到(假设keyArray
基于0):
dict.Add keys(I, 0) & " " & keys(I, 1) & " " & keys(I, 2), Slice(keyArray, 0)(I)