数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。定义规则如下:

Dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值为0。二维数组是按行列排列,如XYZ(行,列)。

除了以上固定数组外,VBA 还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。

如下例:
Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)

 

 

数组是具有相同数据类型并共同享有一个名字的一组变量的集合.数组中的元素通过索引数字加以区分,定义数组的方法如下:

Dim array_name(n) As type (其中n是数组元素的个数)

例如,如果要创建保存10个学生名字的数组,可以用以下语句:

Dim s学生名字(9) As Integer

注意,括号中的数字是9而不是10.这是因为在默认的情况下,第一个索引数字是0.数组在处理相似信息时非常有用.假设要处理15门考试成绩,可以创建15个独立的变量,这意味着要使用15个Dim语句。也可以创建一个数组来保存考试成绩,具体如下:

Dim s学生名字(14) As Integer

声明数组时的另一种方法是不给定大小。可以在程序运行时定义其大小。通过创建动态数组就可以做到。例如,你的程序要创建一表格,可以提示用户输入表格的行和列的数目。声明动态数组的语法如下:

Dim dyn_array() As type

对数组声明后可以在程序运行时用:ReDim语句指定数组的大小:

ReDim dyn_array()(array_size)

参数array_size代表数组的新大小。如果要保留数组的数值,请在ReDim语句后使用保留字Preserve,具体语法如下:

ReDim Preserve dyn_array(array_size)

 

示例:

Dim i人数 As Integer
Dim i考试成绩() As Integer
Dim i As Integer
i人数 = inputbox("输入学生的人数:")
ReDim Preserve i考试成绩(i人数)
For i = 1 to i人数
    i考试成绩(i) = inputbox("输入考试成绩"& i )
Next