3、VBA 编程基础(5)

时间:2025-04-21

固定大小数组。若程序运行时数组的大小可以被改变,则它是个动态数组。

数组是否从 0 或 1 索引是根据 Option Base 语句的设置。如果 Option Base 没有指定为1,则数组索引从0 开始。

1.声明固定大小的数组

下面这行代码声明了一个固定大小的数组,它是个 11 行乘以 11列的Integer 数组:

Dim MyArray(10, 10) As Integer

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

与其他变量的声明一样,除非指定一个数据类型给数组,否则声明数组中元素的数据类型为 Variant。数组中每个数组的数字型Variant 元素占用 16 个字节。每个字符串型 Variant 元素占用 22个字节。为了尽可能使写的代码简洁明了,则要明确声明的数组为某一种数据类型而非 Variant。下面的这几行代码比较了几个不同数组的大小:

整型数组使用 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 字节(20,000 字节)。

ReDim MyIntegerArray (99, 99) As Integer

双精度数组使用 100 * 100 * 8 字节(80,000 字节)。

ReDim MyDoubleArray (99, 99) As Double

变体型数组至少使用 160,000 字节(100 * 100 * 16 字节)。

ReDim MyVariantArray(99, 99)

数组变量的最大值,是以所用的操作系统有多少可用内存为基础。若使用的数组大小超过了系统中可用内存总数的话,则速度会变慢,因为必须从磁盘中读写回数据。

2.声明动态数组

若声明为动态数组,则可以在执行代码时改变数组大小。可以利用 Static、Dim、Private 或 Public 语句来声明数组,并使括号内为空,如下示例所示。

Dim sngArray() As Single

注意:

可以在过程中使用 ReDim 语句来做隐含性的数组声明。当使用ReDim 语句时要小心点,不要拼错数组的名称。否则即使在模块中有包含 Option Explicit 语句,仍然会因此而生成第二个数组。

对于过程中的数组范围,可以使用 ReDim 语句去改变它的维数,去定义元素的数目以及每个维数的底层绑定。每当需要时,可以使用 ReDim 语句去更改动态数组。然而当做这个动作时,数组中存在的值会丢失。若要保存数组中原先的值,则可以使用 ReDim Preserve语句来扩充数组。例如,下列的语句将 varArray 数组扩充了10 个元素,而原本数组中的当前值并没有消失掉。

ReDim Preserve varArray(UBound(varArray) + 10)

注意:

当对动态数组使用 Preserve 关键字时,只可以改变最后维数的上层绑定,而不能改变维数的数目。

11.3.5 过程及其调用

11.3.5.1 Function 过程

Function 过程是一系列由 Function 和 End Function 语句所包含起来的 Visual Basic 语句。Function 过程和 Sub 过程很类似,但函数可以返回一个值。Function 过程可经由调用者过程通过传递参数,例如

3、VBA 编程基础(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219