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)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 32位的Access软件转化为64...(04.12)
- 【Access高效办公】如何让vb...(04.11)
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)