访问VBA-Excel中的字典数组

我想使用一个字典数组来存储一个Excel的所有内容,以便稍后处理它,并在内存中进行操作。 我会定义的第一行的Excel是关键,其余的行是内容。 所以,因为我有一个关键许多值,我需要将它们存储在不同的容器(这将是数组)。

内容的一个样本

代码名称姓氏
 1 ab
 2 cd

所以,代码会是这样的:

For Each rcell In ws.UsedRange.Cells If rcell.Row > 1 Then ReDim Preserve aRows(rcell.Row - 2) 'Set aRows(rcell.Row - 2) = CreateObject("scripting.dictionary") Set pInfo = New Scripting.Dictionary pInfo.Add Key:=Cells(1, rcell.Column).Value, Item:=rcell.Value 'aRows(rcell.Row - 2).Add Key:=Cells(1, rcell.Column).Value, Item:=rcell.Value Set aRows(rcell.Row - 2) = pInfo End If Next rcell 

有了这个代码,我创build了字典数组。 但是,当我想访问数据时,我得到的错误,我不知道什么是正确的方式来访问。

我知道至less它是存储值,因为当我使用:

  debug.print(ubound(aRows)) 

在这种情况下,我得到的值(1)。

此外,我试图访问的内容

 for each row in aRows debug.print(row.key) next row 

但是这不被接受。 我如何访问数据?

谢谢另外,如果有人提出一个替代scheme或更简单的东西会很好。 这是我可以猜测我的问题的最佳解决scheme。

可能是这个?

 Dim d, k For Fach d in aRows For Each k in d.keys Debug.Print k, d(k), Next Debug.Print vbCrLf Next 

你可以使用

 Dim myRow as Variant, key as variant For Each myRow In aRows With myRow For Each key In .Keys Debug.Print key, .Item(key) Next End With Next