大家好,前面介绍过VBA变量,可以通过它来访问数据。但对于大量数据时候,通过声明变量就显得太繁琐,此时就可以通过数组来访问数据解决。
说到数组,在介绍Excel函数时已经涉及,但在VBA中数组的用法与函数公式中有所不同,下面将主要介绍VBA中数组的一些基础知识,让大家对数组先有个初步的认识。
一、数组的定义
VBA中的数组是由相同类型的变量连续排列在一起所构成的。数组本身也是一种形式的变量,通过它来访问数据。数组主要有以下特点:
1、数组共享同一个名字,就是数组名。
2、数组中的变量是同种类型的(在声明数组时会介绍)。
3、数组中的元素按次序存储在数组中,可以通过索引号进行区分。
4、数组也是变量。
5、数组可以有多个维度,常用的是1维、2维和3维,数组最多支持60维。
二、数组名称命名规则
VBA数组是共享一个名称,即数组名。它命名与变量命名的原则一致,主要有以下基本基本原则:
1、不能以数字或者下划线开头
2、不能仅有数字组成
3、不能有%、¥、&、#、@等特殊字符
4、名字必须唯一,不能与其他变量或数组有相同名称。
三、数组的维度
讲解VBA数组前,首先说明下数组的维度概念,因为在使用VBA数组时都需要明确数组的维度。可以通过将Excel表格来形象化的去理解数组维度,特别是常用的一维和二维。
1、一维
一维数组就可以用一行单元格去理解,例如下图可以理解成是容纳5个元素的一维数组的形象化。其中单个元素的位置可以通过一个索引号标注出来,是从0至4中的一个整数。(数组中索引号默认从0开始,具体后面会介绍。)
2、二维
假设在Excel工作表中有5行5列范围的单元格区域,只有同时确定行号和列号时,才能确定某个单元格的位置。Excel的单张工作表就是二维表。
下图可以理解成是容纳二维数组的形象化,第一个维度索引号从0至4,第二个维度也是0至4。其中单个元素的位置可以通过两个索引号标注出来,总共可以容纳5*5=25个元素。(数组中索引号默认从0开始,后面会介绍。)
3、三维
假设Excel中同时又多张工作表时,对于某一个工作表的单元格的位置,就需要工作表序号,列号和行号,三个参数才能确定。
三维数组类似的,数组中一个元素的位置就需要三个索引号来确定。
例如下图可以理解成是容纳三维数组的形象化,第一个维度从0至4,第二个维度也是0至4。第三个维度从0至2,可以容纳5*5*3=75个元素。其中单个元素的位置可以通过三个索引号标注出来。(数组中索引号默认从0开始,后面会介绍。)
总结:对于数组的维度,需要几个索引号才能确定数组中元素的位置,那么数组就是几维的。
魔方和图书馆书架等是现实中容易帮助理解维度的实体,也可以利用在数学中学过的线、面、体上点的坐标来理解维度。(超过三维通常特殊用途才会用到,平时工作使用理解到一维到三维即可。)
四、索引号、上界和下界
在使用数组时首先确定的是维度。而不同的维度都有不同的范围。类似Excel表格中单元格区域的行号和列号范围。在数组中称为索引号,同时索引号均为整数。(不同于Excel中的列为字母。)
数组维度起始和结束的数值起名叫下界和上界。每个维度的下界和上界是独立的。
数组的维度主要在声明数组时使用,用户定义两者的值,而通过下界和上界的数值可以计算数组的容量大小。数组中单个维度的范围为 (上界-下界 1),数组的大小为各个维度范围相乘。
以上节的二维数组为例,两个维度的下界为默认值0,上界为4。数维度的范围即上界-下界 1,计算结果均为5,数组大小为5*5=25,即可以容纳25个元素。
数组的下界默认为从数值0开始。如果需要默然从1开始。需要在编程开头加上option base 1 语句来设置即可。或者在声明数组时第一维下界从1开始。也可以从其他数值开始(上界要大于下界),这些后面介绍声明数组时会有详细介绍。
今天下雨
本节主要介绍数组的基础知识,重在理解数组的维度,索引号、上界和下界的概念,后续会介绍数组的其他内容,祝大家学习快乐。