数字化工具VBA实战经验之五:动静数组及案例
伙伴们,大家好。今天分享动静数组及案例,仅供参考。我们每天进步一点,梦想更近一步。
思语:落花有意,流水无情。
落花本无意,流水亦有情。落花是生物更替的自然现象,而流水是生命之源,其撑起了我们的生命线,有重要意义。
落花在入水那刻起,就决定了它将随流水飘游,亘古不变。但是落花在其盛开时节,也曾拥有沁人心脾的芬芳馥郁,使人惬意,它美化了我们的生活环境,也发挥了不同的作用。
由此可见,我们在不同的年龄阶段会有不同的任务需要去完成。像《企业会计准则》描述持续经营假设一样,我们还会有明天的明天的明天,但是我们再也回不到昨天的昨天的昨天。因此,我们要的是不负韶华只争朝夕。

数组从用途来讲,也可以划分为静态数组和动态数组。
一、静态数组
1、定义
数组长度固定的数组。可以当作成本管理模块里的固定成本来理解,在一定条件和范围内不变,但当条件发生变化,静态数组也需另建。数组长度可以理解为数组元素的个数。
2、特点
声明时就指定数组长度,其维数和大小固定不变。
3、声明语句
声明一个长整型一维静态数组,数组变量带有数字的括号。
第一种方式:Dim myarray1(5) as long
括号里直接给定5,则下标从0开始编号至5,共计6个元素。
第二种方式:Dim myarray(1 To 6) as long
括号里是:1 to 6,则下标从1开始编号至6,共计6个元素。To是关键字几到几的意思。
上述第一种方式myarray1(0)与第二种方式的myarray(1)都是该数组的第一个元素,而myarray1(5)与myarray1(6)都是该数组的第六个元素,它们是等效的,只是元素的编号方式不同。
4、数组的赋值
赋值语句:myarray1(0)="远昌财税"
5、数组的读取
比如,按上述第一种方式定义后,显示第一个数组元素:MsgBox myarray1(0),执行后提示框显示:远昌财税
二、动态数组
1、定义
数组长度随业务条件而动态变化的数组。我们可以理解为因地制宜,千变万化。
2、特点
声明时不指定长度,在程序执行过程根据预设的业务条件而动态调整数组长度。其维数和大小随业务条件变化。
3、声明语句
dim myarray2() as long '声明一个长整型动态数组,数组变量带一个空括号。
4、数组的赋值
在赋值前需先重新定义数组的维数大小:
ReDim Preserve myarray2(1 to 6) as long
重新定义一个长整型一维动态数组,数组共计6个元素。Preserve关键字的作用是在重新定义数组维数大小后,数组中已存在的值仍会保留。
如果不带Preserve,则数组中已存在的值会被新值替代,旧值不复存在。
比如,赋值语句:myarray2(1)="中国"
5、数组的读取
比如,按上述赋值显示第一个数组元素:MsgBox myarray2(1),执行后提示框显示:中国
三、静态数组案例
编译一个一维字符型静态数组myarray1,共计4个元素。按F8键逐语句测试如图:

四、动态数组案例
编译一个一维字符型动态数组myarray2,共计4个元素,分两次重新定义追加元素。按F8键逐语句测试如图:

