VBA编程-声明数组-福哥
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


VBA编程-声明数组

发表时间:2022/11/17 7:51:12 评论(0) 浏览(1634)  评论 | 加入收藏 | 复制
   
摘 要:数组的声明方式与其他 变量相同,即,使用 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群(群号:198465573)
 
 相关文章
vb数组排序-冒泡排序法  【风行  2012/5/27】
VBA数组完全教程10集,ACCESS数组,VB数组  【风行(转载)  2012/7/21】
数组的力量  【nivenm  2013/6/25】
如何判断VBA中的一个数组是否已经定义其维数上限下限  【MDZZ  2017/4/17】
VBA二维数组的基础介绍  【杨雪  2019/5/18】
Access使用数组求最大值函数;求一组数据最大值示例;分享一个得...  【欧志华  2022/10/21】
Access利用数组实现矩阵转换  【欧志华  2022/10/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

福哥

文章分类

文章存档

友情链接