关 于 EXCEL 中 VBA 的 数 组 理 解 一 、什么是 VBA 数 组 不要把VBA 数组想的太神秘,它其实就是一组数字而已。把一组数按行、列排在一起,放在内存中。就是一个 VBA 数组。 二、数 组 的 维数 数组的维数其实和文件管理的目录一样的,只有一层时就是一维。如果有两层则是二维数组(有行有列为二维),如果有三层,则是三维数组。。VBA 中支持 1~3 维数组运算。 Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一个可以容下 10 行3 列的数组空间 For x = 1 To 4 For y = 1 To 3 arr(x, y) = Cells(x, y) '通过循环把单元格区域 a1:c4 的数据装进数组中 Next y Next x MsgBox arr(4, 3) '根据提供的行数和列数显示数组 arr(1, 2) = "我改一下试试" '你可以随时修改数组内指定位置的数据 MsgBox arr(1, 2) End Sub 总结:二维是由行和列表示的数组,如ARR(3,2)表示数组中第3 排第2 列的元素。而一维数组只是由一个元素决定,如ARR(4)表示数组中第4 个元素 三 、把单元格数据搬入内存: 一、声明: Dim arr as Variant '声明一个变量,不能声明其他数据类型 Dim arr(1 to 10, 1 to 2 ) , 这种声明也是错误的,固定大小的VBA 数组是不能一次性装入单元格数据 或:dim arr() 这种声明方式是声明一个动态数组,也可以装入单元格区域,构成一个VBA 数组。 二、装入 arr =range("a9:c100") '装入很简单,变量 = 单元格区域 三、读出 装入数组后的单元格数值,可以按 数组名称(行数,列数) 直接读取该位置的值,如下面的代码。 Msgbox arr(3,2) '就可以取出搬过去的而构成的数组第3 行第2 列的内容 四、示例 Sub s3() Dim arr() '声明一个动态数组(动态指不固定大小) Dim arr1 '声明一个 Variant 类型的变量 arr = Range("a1:c7") '把单元格区域 A1:C7 的值装入数组arr arr1 = Range("a1:c7") '把单元格区域 A1:C7 的值装入数组arr1 MsgBox arr(1, 1) '读取arr 数组中第1 行第1 列的数值 MsgBox arr1(2, 3) '读取arr1 数组的第2 行第3 列的数值 End Sub 四 、把内存数据搬入单元格 Sub test() Dim arr '声明一个变量用来盛放单元格数据 Dim x As Integer arr = Range("a2:d5") '把单元格数据搬入到arr 里,它有4列4 行 For x...