使用VBA中的Redim语句可以动态地调整数组的大小,包括可变维数数组。这使得我们能够更加灵活地处理不同大小的数据集。下面将介绍Redim VBA中可变维数的使用方法,并结合一个案例代码进行说明。
在VBA中,我们可以使用Redim语句来调整数组的大小。对于一维数组,我们可以使用Redim来改变数组的长度。而对于多维数组,我们可以使用Redim来改变数组在每个维度上的长度。例如,我们可以使用以下代码来创建一个一维数组,并使用Redim来调整数组的长度:vbaDim arr() As IntegerReDim arr(5) ' 创建一个长度为5的一维数组ReDim arr(10) ' 调整数组的长度为10在上述代码中,我们首先声明了一个一维数组arr,并使用Redim语句将其长度设置为5。然后,我们使用Redim再次调整数组的长度为10。这样,数组的长度就从5变为了10。除了一维数组,我们还可以使用Redim来调整多维数组的大小。例如,我们可以使用以下代码来创建一个二维数组,并使用Redim来调整数组在每个维度上的长度:
vbaDim arr() As IntegerReDim arr(1 To 3, 1 To 3) ' 创建一个3行3列的二维数组ReDim Preserve arr(1 To 5, 1 To 5) ' 调整数组的大小为5行5列,并保留原有数据在上述代码中,我们首先声明了一个二维数组arr,并使用Redim语句将其大小设置为3行3列。然后,我们使用Redim Preserve语句再次调整数组的大小为5行5列,并通过Preserve关键字保留了原有的数据。案例代码:使用Redim调整数组大小下面是一个使用Redim VBA语句调整数组大小的案例代码。假设我们有一个保存学生成绩的二维数组,我们可以使用Redim来动态地添加新的学生成绩。
vbaSub ResizeArray() Dim scores() As Double Dim i As Integer ReDim scores(1 To 5, 1 To 3) ' 创建一个初始大小为5行3列的二维数组 ' 输入学生成绩 For i = 1 To 5 scores(i, 1) = InputBox("请输入第" & i & "个学生的语文成绩:") scores(i, 2) = InputBox("请输入第" & i & "个学生的数学成绩:") scores(i, 3) = InputBox("请输入第" & i & "个学生的英语成绩:") Next i ' 显示学生成绩 For i = 1 To UBound(scores, 1) MsgBox "第" & i & "个学生的成绩为:" & scores(i, 1) & " " & scores(i, 2) & " " & scores(i, 3) Next i ' 调整数组大小为10行3列,并保留原有数据 ReDim Preserve scores(1 To 10, 1 To 3) ' 输入新增学生成绩 For i = 6 To 10 scores(i, 1) = InputBox("请输入第" & i & "个学生的语文成绩:") scores(i, 2) = InputBox("请输入第" & i & "个学生的数学成绩:") scores(i, 3) = InputBox("请输入第" & i & "个学生的英语成绩:") Next i ' 显示学生成绩 For i = 1 To UBound(scores, 1) MsgBox "第" & i & "个学生的成绩为:" & scores(i, 1) & " " & scores(i, 2) & " " & scores(i, 3) Next iEnd Sub在上述案例代码中,我们首先创建了一个初始大小为5行3列的二维数组scores,用于保存学生成绩。然后,通过循环输入学生成绩,并通过MsgBox函数显示学生成绩。接下来,我们使用Redim Preserve语句将数组的大小调整为10行3列,并保留了原有的数据。然后,再次通过循环输入新增学生成绩,并通过MsgBox函数显示所有学生成绩。通过这个案例,我们可以看到使用Redim VBA语句调整数组大小的灵活性,使我们能够动态地处理不同大小的数据集。无论是一维数组还是多维数组,Redim语句都能帮助我们轻松地调整数组的大小,以满足实际需求。