跳到主要内容

ReDim 重定义数组

🎯功能

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

📜语法

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

📥参数

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

📤返回

💡示例

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)
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

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