VBA阵列尺寸错误

时间:2018-07-12 18:35:49

标签: excel vba multidimensional-array

我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

从2D数组省略下标并不会自动将其切片为1D数组。如果您需要完全的效率以及可以在Excel之外使用的功能,请使用this functionThis function使用Index工作表函数执行切片,因此将无法在Excel外部工作(效率也较低)。

假设您将函数命名为Slice,这应该可以做到(假设keyArray基于0):

dict.Add keys(I, 0) & " " & keys(I, 1) & " " & keys(I, 2), Slice(keyArray, 0)(I)