VBA编程-声明数组
时 间:2022-11-17 07:51:12
作 者:福哥(QQ86053924) ID:1784 城市:成都
摘 要:数组的声明方式与其他 变量相同,即,使用 Dim、Static、Private 或 Public 语句声明。 标量变量(不是数组的变量)和数组变量之间的区别在于您通常必须指定数组的大小。 指定了大小的数组为固定大小的数组。 程序运行时大小可以更改的数组是动态数组。
数组是以 0 还是以 1 开始编制索引取决于 Option Base 语句的设置。 如果 Option Base 1 未指定,则所有数组索引都从零开始。
正 文:
数组的声明方式与其他 变量相同,即,使用 Dim、Static、Private 或 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交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access选项卡示例】Ac...(09.09)
- 【Access源码示例】按输入...(09.02)
- 【Access日期区间段查询】...(08.29)
- 【Access日期区间段查询】...(08.27)
- Access怎样才能实现日期时...(08.21)
- 【Access定时打开查询】A...(08.19)
- Access生成固定数量的记录...(08.13)
- Access怎样才能实现日期时...(08.12)
- Access利用导航窗体控件对...(08.03)
学习心得
最新文章
- Access表中的字段名、字段标题...(09.19)
- Access快速开发平台--更改“...(09.18)
- 【中秋及国庆优惠】Access培训...(09.15)
- Access如何将日期型的数值转换...(09.14)
- 英文输入法输入数据中存在单引号引起...(09.11)
- 【Access选项卡示例】Acce...(09.09)
- 让Access光标停留在指定的控件...(09.07)
- 关于Access查询条件里使用通配...(09.06)
- Access报表偷懒制作法--Ac...(09.05)
- Access快速开发平台--窗体数...(09.04)