ReDim 重定义数组

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

声明动态数组变量并分配或重新分配存储空间。

语法

ReDim [Preserve] 数组名(下标) [, …]

参数

参数 数据类型 解释
数组名 标识符 任意有效的数组变量名
下标 整数型 数组的最大下标, 多个下标表示多维数组, 最多支持60维数组

返回值

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
Dim a, b(1), c()
a = 1
b(0) = 1
b(1) = 2

//清除数组内容并重新定义最大下标
ReDim c(a)
c(0) = 11
c(1) = 22

TracePrint a
TracePrint b(0) & " , " & b(1)
TracePrint c(0) & " , " & c(1)
1
2
3
4
5
6
7
8
9
10
11
12
Dim a
a = Array(1, 2, 3)

//保留数组内容并重新定义最大下标
ReDim Preserve a(5)
a(3) = 4
a(4) = 5
a(5) = 6

For i = 0 to Ubound(a)
TracePrint a(i)
Next

备注

  • ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的 PrivatePublicDim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。
  • 如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
  • 变量初始化时,数值变量初始化为 0,字符串变量初始化为零长度字符串 ("")。在使用引用对象的变量前,必须使用 Set 语句将某个现有对象赋予该变量。在进行对象赋值以前,已声明的对象变量有特定值 Nothing

注意

如果减小数组的大小,则将丢失被排除的元素中的数据。