从代码中我很容易看到我想要的东西,但到目前为止没有任何作用:
Sub test()
Dim C As New Collection
Dim A() As String
ReDim A(0, 1)
A(0, 0) = "row 0, col 0"
A(0, 1) = "row 0, col 1"
C.Add A(0), "first" ' subscript out of range error
Debug.Print C.Item("first")(0) & ", " & C.Item("first")(1)
End Sub
所以,我只想让一个数组作为集合的成员。
非常感谢任何帮助。
答案 0 :(得分:0)
您不是在寻找集合,而是在寻找字典。
将Microsoft Scripting Runtime
添加到参考文献(工具/参考文献);
使用字典而不是集合稍微修改代码:
Sub test()
Dim C As New Scripting.Dictionary '<-- not collection
Dim A() As String
ReDim A(0, 1)
A(0, 0) = "row 0, col 0"
A(0, 1) = "row 0, col 1"
C.Add "first", A '<-- key first, item then
Debug.Print C("first")(0, 0) & ", " & C("first")(0,1) <-- you need to access the elements properly (bi-dimensional)
End Sub
对于错误(“下标超出范围”),它取决于数组的错误使用。您将其定义为A(0 to 0, 0 to 1)
,因此您无法使用它,就像它是单维的一样。