VBA数组学习笔记

VBA数组学习笔记

ID:38605125

大小:51.50 KB

页数:10页

时间:2019-06-16

VBA数组学习笔记_第1页
VBA数组学习笔记_第2页
VBA数组学习笔记_第3页
VBA数组学习笔记_第4页
VBA数组学习笔记_第5页
资源描述:

《VBA数组学习笔记》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VBA数组学习笔记声明数组数组的声明方式和其它的变量是一样的,它可以使用Dim、Static、Private或Public语句来声明。标量变量(非数组)与数组变量的不同在于通常必须指定数组的大小。若数组的大小被指定的话,则它是个固定大小数组。若程序运行时数组的大小可以被改变,则它是个动态数组。数组是否从0或1索引是根据OptionBase语句的设置。如果OptionBase没有指定为1,则数组索引从零开始。声明固定大小的数组下面这行代码声明了一个固定大小的数组,它是个11行乘以11列的Integer数组:Dim

2、MyArray(10,10)AsInteger第一个参数代表的是行;而第二个参数代表的是列。与其它变量的声明一样,除非指定一个数据类型给数组,否则声明数组中元素的数据类型为Variant。数组中每个数组的数字型Variant元素占用16个字节。每个字符串型Variant元素占用22个字节。为了尽可能使写的代码简洁明了,则要明确声明的数组为某一种数据类型而非Variant。下面的这几行代码比较了几个不同数组的大小:'整型数组使用22个字节(11元素*2字节)ReDimMyIntegerArray(10)AsInt

3、eger'双精度数组使用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

4、*100*16字节)。ReDimMyVariantArray(99,99)数组变量的最大值,是以的操作系统与有多少可用内存为基础。若使用的数组大小超过了系统中可用内存总数的话,则速度会变慢,因为必须从磁盘中读写回数据。声明动态数组若声明为动态数组,则可以在执行代码时去改变数组大小。可以利用Static、Dim、Private或Public语句来声明数组,并使括号内为为空,如下示例所示。DimsngArray()AsSingle注意可以在过程中使用ReDim语句来做隐含性的数组声明。当使用ReDim语句时要小心点

5、,不要拼错数组的名称。否则即使在模块中有包含OptionExplicit语句,仍然会因此而生成第二个数组。对于过程中的数组范围,可以使用ReDim语句去改变它的维数,去定义元素的数目以及每个维数的底层绑定。每当需要时,可以使用ReDim语句去更改动态数组。然而当做这个动作时,数组中存在的值会丢失。若要保存数组中原先的值,则可以使用ReDimPreserve语句来扩充数组。例如,下列的语句将varArray数组扩充了10个元素,而原本数组中的当前值并没有消失掉。ReDimPreservevarArray(UBou

6、nd(varArray)+10)注意当对动态数组使用Preserve关键字时,只可以改变最后维数的上层绑定,而不能改变维数的数目。常常在论坛看到很多VBA高手运用数组解决各种问题,速度快,代码简洁,很是羡慕,所以逐渐收集了一些资料,与大家分享,也请多多指教。在此,也向高手们致以谢意。一、数组的分类按元素数目分:元素数目大小固定的数组和元素数目大小不固定的动态数组。按维数分:一维数组、多维数组。Arr(1to12)、Arr1(0to24)----一维固定数组;Arr2(1to5,1to8)----二维固定数组;A

7、rr3(5to10,6to12,1to100)----三维固定数组。动态数组DimArr2(),r%r=r+1ReDimPreserveArr2(1Tor)―――动态数组;可以重新声明(只有最后一维的数目才能重新声明);用了关键字Preserve可确保原来包含数据的数组中的任何数据都不会丢失二、数组的赋值2.1,单元格区域保存到数组arr=[e22:i24]arr=Range(“e22:i24”)2.2,Array函数myArray=Array("AAA","BBB",200,500,"2006-7-12")如

8、果代码头没有OptionBase1的语句,则数组myArray的上限为4,下限为0。即下限LBound(myArr)=0,上限UBound(myArr)=4二维数组的第一维的上限:UBound(Arr,1)二维数组的第二维的上限:UBound(Arr,2)多维数组上限的求法一样。2.3,把单元格区域公式赋给数组如果a5=B4+1arr=[a4:c8].Formula'将单元格绝对引用公

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。