Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

VBA编程-声明数组

时 间:2022-11-17 07:51:12
作 者:福哥(QQ86053924)   ID:1784  城市:成都
摘 要:数组的声明方式与其他 变量相同,即,使用 Dim、Static、Private 或 Public 语句声明。 标量变量(不是数组的变量)和数组变量之间的区别在于您通常必须指定数组的大小。 指定了大小的数组为固定大小的数组。 程序运行时大小可以更改的数组是动态数组。
数组是以 0 还是以 1 开始编制索引取决于 Option Base 语句的设置。 如果 Option Base 1 未指定,则所有数组索引都从零开始。

正 文:

数组的声明方式与其他 变量相同,即,使用 DimStaticPrivate 或 Public 语句声明。 标量变量(不是数组的变量)和数组变量之间的区别在于您通常必须指定数组的大小。 指定了大小的数组为固定大小的数组。 程序运行时大小可以更改的数组是动态数组。

数组是以 0 还是以 1 开始编制索引取决于 Option Base 语句的设置。 如果 Option Base 1 未指定,则所有数组索引都从零开始。

声明固定数组

在下面的代码行中,一个固定大小的数组声明为具有 11 行和 11 列的 Integer 数组:

VB复制

Dim MyArray(10, 10) As Integer


第一个参数代表行;第二个参数代表列。

除非为数组指定 数据类型,否则和其他任何变量声明一样,声明数组中元素的数据类型为 Variant 。 数组的每个数字 Variant 元素使用 16 位元组。 每个字符串 Variant 元素使用 22 位元组。 要编写尽可能紧凑的代码,请显式声明数组为某个数据类型,而非 Variant 。

下面的代码行比较多个数组的大小。

VB复制

'整数数组使用22个字节(11个元素*2个字节)。

ReDim MyIntegerArray(10) As Integer


'双精度数组使用88字节(11个元素*8字节)。

ReDim MyDoubleArray(10) As Double


'变量数组至少使用176个字节(11个元素*16个字节)。

ReDim MyVariantArray(10)


'整数数组使用100*100*2字节(20000字节)。

ReDim MyIntegerArray(99, 99) As Integer


'双精度阵列使用100*100*8字节(80000字节)。

ReDim MyDoubleArray(99, 99) As Double


'变量数组至少使用160000字节(100*100*16字节)。

ReDim MyVariantArray(99, 99)

数组的最大大小因操作系统和可用内存而异。 使用超过系统中可用 RAM 大小的数组会导致性能下降,因为必须从磁盘读取数据和向其中写入数据。

声明动态数组

通过声明动态数据,可以在运行代码时调整数组的大小。 使用 Static 、 Dim 、 Private 或 Public 语句声明一个数组,将括号内留空,如下面的示例所示。

VB复制

Dim sngArray() As Single


备   注:

使用 ReDim 语句在过程内隐式声明数组。 在使用 ReDim 语句时,请注意不要将数组的名称拼错。 即使 Option Explicit 语句包括在模块内,也将创建另一个数组。

在数组 范围内的过程中,使用 ReDim 语句可更改维度数、定义元素数,以及定义每个维度的上限和下限。 根据需要使用 ReDim 语句更改动态数组。 但是,每次这么做时,数组中的现有值都会丢失。 使用 ReDim Preserve 可在保留数组中现有值的情况下扩展数组。


例如,下面的语句将数组扩增了 10 个元素,而未丢失原始元素的当前值。

VB复制

ReDim Preserve varArray(UBound(varArray) + 10)



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助