导读:在Excel VBA中,Redim语句是一种用于重新调整数组大小的特殊语句。通过使用Redim语句,可以添加或删除一个或多个元素,同时也可以重新定义数组的维度。本文将详细介绍Excel VBA中Redim语句的用法和注意事项。
1. Redim的基本语法
Redim语句的基本语法如下:
Redim arrayname(subscript)
Redim arrayname(subscript1 to subscript2)
Redim Preserve arrayname(subscript)
Redim Preserve arrayname(subscript1 to subscript2)
1.1 Redim arrayname(subscript)
这个语句可以重新调整一个数组的大小,其中arrayname是数组的名称,subscript是一个整数值,表示数组在此维度上的新大小。例如:
Dim MyArray(4) As Integer
' 此时数组的下标范围是 0 到 4
Redim MyArray(6)
' 现在数组的下标范围是 0 到 6
Redim MyArray(2)
' 数组下标范围被缩小为 0 到 2
在上面的示例中,我们通过Redim语句改变了数组MyArray的大小,从而实现了对数组元素的添加或删除操作。
1.2 Redim arrayname(subscript1 to subscript2)
这个语句可以重新调整一个多维数组的大小,其中arrayname是数组的名称,subscript1和subscript2是一对整数值,表示数组在此维度上的新下标范围。例如:
Dim MyArray(3, 3) As Integer
' 此时数组的下标范围是
' 第一维:0 到 3
' 第二维:0 到 3
Redim MyArray(3, 4)
' 数组的下标范围变为
' 第一维:0 到 3
' 第二维:0 到 4
Redim MyArray(1, 2 To 5)
' 数组的下标范围变为
' 第一维:0 到 1
' 第二维:2 到 5
在上面的示例中,我们通过Redim语句改变了多维数组MyArray的大小,从而实现了对数组元素的添加或删除操作。
1.3 Redim Preserve arrayname(subscript)
这个语句可以重新调整一个数组的大小,同时保留数组已有元素的值,其中arrayname是数组的名称,subscript是一个整数值,表示数组在此维度上的新大小。例如:
Dim MyArray(4) As Integer
MyArray(0) = 1
MyArray(1) = 2
MyArray(2) = 3
MyArray(3) = 4
Redim Preserve MyArray(6)
' MyArray(0) 至 MyArray(3) 的值不变
' 新的元素 MyArray(4) 至 MyArray(6) 被赋予默认值 0
Redim Preserve MyArray(2)
' MyArray(0) 至 MyArray(2) 的值不变
' 元素 MyArray(3) 至 MyArray(6) 被删除
在上面的示例中,我们通过Redim Preserve语句改变了数组MyArray的大小,并保留了已有元素的值。
1.4 Redim Preserve arrayname(subscript1 to subscript2)
这个语句可以重新调整一个多维数组的大小,同时保留数组已有元素的值,其中arrayname是数组的名称,subscript1和subscript2是一对整数值,表示数组在此维度上的新下标范围。例如:
Dim MyArray(3, 3) As Integer
MyArray(0, 0) = 1
MyArray(0, 1) = 2
MyArray(1, 0) = 3
MyArray(1, 1) = 4
Redim Preserve MyArray(3, 4)
' MyArray(0,0) 至 MyArray(1,1) 的值不变
' 新的元素 MyArray(0,2) 至 MyArray(3,4) 被赋予默认值 0
Redim Preserve MyArray(1, 2 To 5)
' MyArray(0,0) 至 MyArray(1,1) 的值不变
' 元素 MyArray(0,2) 至 MyArray(3,4) 被删除
' 新的元素 MyArray(1,2) 至 MyArray(1,5) 被赋予默认值 0
在上面的示例中,我们通过Redim Preserve语句改变了多维数组MyArray的大小,并保留了已有元素的值。
2. Redim语句的注意事项
在使用Redim语句时,需要注意以下事项:
2.1 Redim语句只能用于动态数组
Redim语句只能用于在声明时未确定大小的动态数组,静态数组的大小不能改变。
2.2 Redim Preserve只能用于保留已有元素的数组
在使用Redim Preserve语句时,数组必须是一个已有元素的数组,否则将出现运行时错误。
2.3 Redim语句会擦除原数组中的所有元素
在使用Redim语句重新调整数组大小时,原数组中的所有元素都将被擦除。
3. 总结归纳
Redim语句是Excel VBA中用于重新调整数组大小的特殊语句。通过使用Redim语句,可以添加或删除一个或多个元素,同时也可以重新定义数组的维度。Redim语句的基本语法包括Redim arrayname(subscript)、Redim arrayname(subscript1 to subscript2)、Redim Preserve arrayname(subscript)和Redim Preserve arrayname(subscript1 to subscript2)等多种形式。在使用Redim语句时,需要注意Redim语句只能用于动态数组、Redim Preserve只能用于保留已有元素的数组以及Redim语句会擦除原数组中的所有元素等几个问题。