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交流群 (群号:483923997) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access两种方式实现即时更...(03.01)
- Access隐藏与显示lacc...(01.12)
- 【Access高效办公】将每个...(12.23)
- Access21点游戏源代码(12.13)
- 【Access窗体导出Exce...(11.15)
- 【Access开发】Acces...(11.14)
- 通过Access宏录入数据到选...(11.10)
- 用DLOOKUP函数将需求表中...(10.31)
- Access日期区间段查询数据...(10.25)
学习心得
最新文章
- Access快速开发平台--在WI...(03.08)
- 使用SQL语句删除xscj表中学号...(03.08)
- Access快速开发平台进销存教程...(03.07)
- Access快速开发平台--frm...(03.06)
- 【Access删除查询】删除数字最...(03.06)
- Access快速开发平台进销存教程...(03.05)
- Access快速开发平台进销存教程...(03.04)
- Access快速开发平台--IsL...(03.02)
- Access两种方式实现即时更新月...(03.01)
- Access开发的资金管理系统;基...(02.29)