预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(完整版)如何在vba中声明数组(完整版)如何在vba中声明数组(完整版)如何在vba中声明数组声明数组什么是数组:连续可索引的具有相同内在数据类型的元素所成的集合,数组中的每一元素具有唯一索引号。更改其中一个元素并不会影响其它元素.数组的声明方式和其它的变量是一样的,它可以使用Dim、Static、Private或Public语句来声明.标量变量(非数组)与数组变量的不同在于通常必须指定数组的大小。若数组的大小被指定的话,则它是个固定大小数组。若程序运行时数组的大小可以被改变,则它是个动态数组。数组是否从0或1索引是根据OptionBase语句的设置.如果OptionBase没有指定为1,则数组索引从零开始。声明固定大小的数组下面这行代码声明了一个固定大小的数组,它是个11行乘以11列的Integer数组:DimMyArray(10,10)AsInteger第一个参数代表的是行;而第二个参数代表的是列。与其它变量的声明一样,除非指定一个数据类型给数组,否则声明数组中元素的数据类型(数据类型:变量的特性,用来决定可保存何种数据.数据类型包括Byte、Boolean、Integer、Long、Currency、Decimal、Single、Double、Date、String、Object、Variant(默认)和用户定义类型等.)为Variant。数组中每个数组的数字型Variant元素占用16个字节。每个字符串型Variant元素占用22个字节。为了尽可能使写的代码简洁明了,则要明确声明的数组为某一种数据类型而非Variant。下面的这几行代码比较了几个不同数组的大小:’整型数组使用22个字节(11元素*2字节)ReDimMyIntegerArray(10)AsInteger’双精度数组使用88个字节(11元素*8字节)。ReDimMyDoubleArray(10)AsDouble'变体型数组至少使用176字节(11元素*16字节)。ReDimMyVariantArray(10)'整型数组使用100*100*2字节(20,000字节)。ReDimMyIntegerArray(99,99)AsInteger’双精度数组使用100*100*8字节(80,000字节)。ReDimMyDoubleArray(99,99)AsDouble’变体型数组至少使用160,000字节(100*100*16字节)。ReDimMyVariantArray(99,99)数组变量的最大值,是以的操作系统与有多少可用内存为基础。若使用的数组大小超过了系统中可用内存总数的话,则速度会变慢,因为必须从磁盘中读写回数据。声明动态数组若声明为动态数组,则可以在执行代码时去改变数组大小。可以利用Static、Dim、Private或Public语句来声明数组,并使括号内为为空,如下示例所示.DimsngArray()AsSingle注意可以在过程中使用ReDim语句来做隐含性的数组声明。当使用ReDim语句时要小心点,不要拼错数组的名称。否则即使在模块中有包含OptionExplicit语句,仍然会因此而生成第二个数组.对于过程中的数组范围,可以使用ReDim语句去改变它的维数,去定义元素的数目以及每个维数的底层绑定。每当需要时,可以使用ReDim语句去更改动态数组。然而当做这个动作时,数组中存在的值会丢失。若要保存数组中原先的值,则可以使用ReDimPreserve语句来扩充数组。例如,下列的语句将varArray数组扩充了10个元素,而原本数组中的当前值并没有消失掉。ReDimPreservevarArray(UBound(varArray)+10)注意当对动态数组使用Preserve关键字时,只可以改变最后维数的上层绑定,而不能改变维数的数目。