【VBA研究】数组的定义和使用

【VBA研究】数组的定义和使用

作者:iamlaosong

数组用起来很方便,尤其是利用循环可以大大简化代码量。用数组读取工作表内容,再进行各种处理,可以大大提高程序效率。在数组使用过程中不可避免的要碰到一些令人困惑的问题,下面就讨论一下与数组相关的问题。

1、数组的上界和下界

定义(声明)数组时是要明确数组上界的,如下面语句:

Dim mm(31), ww(7, 2)

上面两个数组,mm的上界就是31,ww是个二维数组,上界分别是7和2,那么下界呢?

VBA默认将数组的第一个成员设置为0 (下标) ,因此,数字1代表数组中的第二个成员,而数字2则代表第三个,等等。因为数字编号起始于0 ,所以一维数组mm(31)包含从0到31共有32个成员。同样,二维数组ww(7, 2)共有8*3=24个成员。

如果希望从1开始计数数组里的成员,那么可以使用Option Base 1语句来强制指定该数组的下界。该指令必须置于VBA模块任何Sub语句上面的声明部分。如果不明确Option Base 1 ,那么VBA在使用数组是就会假定使用Option Base 0来从0开始编号数组成员。

当然,你可以不管上面的Option Base语句,直接在定义中明确下界和上界,即:

Dim mm(1 to 31), ww(1 to 7, 1 to 2)

上面定义方法也可以让数组从其他数字开始编号,负数也是可以的,但下界一定要小于或者等于上界,否则,数组是不能使用的(定义没问题但不能用)。例如:

Dim ma(11 to 20), wa(5 to 7, 2), wb(-5 to 7, 2)

如果没有指明下界,则按照Option Base语句指定的值定义。

UBound()函数可以返回指定的数组维可用的最大下标(上界)。例如:

UB

💡 关键要点

作者:iamlaosong 数组用起来很方便,尤其是利用循环可以大大简化代码量。用数组读取工作表内容,再进行各种处理,可以大大提高程序效率。

更多疯狂内容

林正英最值得回味的电影(十部林正英电影代表作)
web源码 如何使用

web源码 如何使用

🔥 578 📅 07-24
iPhone 13设置微信通知不显示内容教程