将一个数据表添加到字典excel vba

我是使用字典的全新的,可以做一点帮助。 我有一个范围A1:C4的数据表

ABC 1 4 7 2 5 8 3 6 9

有什么方法可以直接将这些表添加到字典中?

提前致谢

Dim d As Scripting.Dictionary Dim r As Excel.Range Dim c As Excel.Range Set d = New Scripting.Dictionary Set r = Range("a1:c4") For Each c In r.Cells d.Add CStr(c.Address), c.Value Next c 

我想你可能要找的是一个Multidimensional Array

标准Array将在列表中保存一系列值,并且可以引用此列表中任何点的值,例如:

 myArray = Array("One", "Two", "Three") 'The first value in an array is at position 0 unless otherwise specified MsgBox myArray(0) 'Will open a message box with the value "One" MsgBox myArray(1) 'Will open a message box with the value "Two" MsgBox myArray(2) 'Will open a message box with the value "Three" 

而标准数组是一维的,使用Multidimensional Array允许您向该列表中添加多个维度。 简单地说,一个二维数组将让你创build一个数据表。

dim myArray(1 to 3, 1 to 3) as Variant将创build一个二维数组,通过指定“1到3”将分配一个设置的大小和范围的项目,可以在数组中引用。 以此表为例:

A B C

D E F

G H I

把它放到一个multidimensional array中将是以下内容

 Dim myArray(1 To 3, 1 To 3) As Variant myArray(1, 1) = "A" myArray(1, 2) = "B" myArray(1, 3) = "C" myArray(2, 1) = "D" myArray(2, 2) = "E" myArray(2, 3) = "F" myArray(3, 1) = "G" myArray(3, 2) = "H" myArray(3, 3) = "I" MsgBox myArray(2, 2) 'Will open a message box with the value "E" 

鉴于你正在期望从范围(“A1:C4”)产生这个,你可以使用循环来通过每个单元格创build此:

 Dim myArray(1 To 4, 1 To 3) As Variant For Each c In Range("A1:C4") myArray(c.Row, c.Column) = c.Value Next c