什么是数组?
输入数组需要按下Ctrl Shift Enter这三键么?
每一段代码我们几乎都会运用到变量,而变量的运算事实上就是内存的运算。如果我们一段代码会长期访问单元格或者其他对象时,会使运行速度大大降低,这样的话,我们就要想办法将这些运算放到内存中去。所以,数组在这个时候出现了!
那么,什么是数组?
VBA数组就是储存一组数据的数据空间?数据类型可以数字,可以是文本,可以是对象,也可以是VBA数组(即数组嵌套)。
另外,VBA数组是以怎样的方式存在的呢?
VBA数组是以变量形式存放的一个空间,它也有行有列,也可以是三维空间。如下面表示数组的方式:
1、常量数组:Array(1,2),Array('a','b','c')
2、静态数组:arr(4) 有5个位置,起始编号为0。arr(1)表示第二个数;
arr(1 to 4) 有4个位置,起始编号为1。arr(1)表示第一个数;
arr(1 to 4,1 to 10) 二维数组,表示4行10列;
arr(1 to 4),1 to 10,1 to 5) 三维数组,我们可以假想为一共有5个工作表,每个工作表中使用的区域都是4行10列;三维数组在实际运用中比较少,如果实在要用,我们可以使用一维数组嵌套二维数组的办法,这个技巧会在后续的实例中进行展示。
3、动态数组:arr(),暂时不知道有多少行列,在使用时需要重新指定。可以用单元格区域赋值方式,也可以动态扩容。
数组的写入和读出,我们来看一段代码:
1、循环式
代码解析:
此处,我们是以循环的方式写入数组的值,同样,我们可以使用循环的方式读出数组的值。读出或者写入的方式,就是根据数组的行列序号,我们称为下标。
2、数组的动态定义
代码解析:
Redim:重新指定数组的大小,这种方式必须先定义一个不知道大小的数组。
3、由常量数组函数导入
4、重点:由单元格区域导入和导出
这是我们学习的重点,在Excel里面学习数组,我们最常见的就是和单元格打交道,如何将单元格内容放入数组或者如何将数组的计算结果放回到单元格中就尤为重要!!
下面,我们介绍几个数组常用的属性和方法:
1、UBound(数组):数组的最大行下标----常用;
2、UBound(数组,2):数组的最大列下标-常用;
3、三维数组使用的机率不多,大家知道怎样表示最大下标就是了;
4、与UBound相反的就是LBound,这里就不多解释了。
另外,如果我们要清空数组或以使用:Erase arr
还有,如果数组中在有数据的情况下,我们还想扩充数组的大小,可以使用以下语法:
Dim arr(1 To 5, 1 To 5)
ReDim Preserve arr(1 To 5, 1 To 6)
需要注意的是,这种扩容方式,只能扩充数组的最后一维!!
一般情况下,我们在实际使用过程中,很少使用动态扩容或者后期指定数组大小,都是事先定义一个足够大容量的数组,这些我们会在后期的实例中展示。
今天,我们就简单介绍一下数组的基本概念,后期的学习中,会慢慢运用数组和字典来进行我们的数组整理。只要理解了数组和字典,什么多表汇总、多簿汇总那都是浮云!!
我们要理解什么是数组、数组的维、数组的读、数组的写、数组的最大下标、数组与单元格。如果这些你都理解了,今天这节课我们的目的也就达到了。
联系客服