如何在Excel VBA中使用ReDim语句调整数组大小,并演示在宏中实现数组动态扩展?
时间: 2024-10-28 10:18:45 浏览: 27
在Excel VBA中,动态数组是通过`ReDim`语句实现的,这在处理不确定大小的数据集时尤为有用。要正确使用`ReDim`语句,首先需要了解如何声明一个动态数组。与固定大小数组不同,动态数组在声明时不指定大小,而是留空或者使用`As Variant`类型来创建。例如,可以声明一个动态数组如下:`Dim MyArray() As Integer`或`Dim MyArray() As Variant`。
参考资源链接:[Excel宏教程:VBA数组使用与宏操作](https://wenku.csdn.net/doc/142zv8b7n8?spm=1055.2569.3001.10343)
接下来,使用`ReDim`语句调整数组大小。如果不使用`Preserve`关键字,数组中的原有数据将会丢失;如果使用`Preserve`关键字,将只能改变数组的最后一个维度的大小,保留原有数据。例如,要增加数组的最后一个维度大小,可以使用如下代码:`ReDim Preserve MyArray(UBound(MyArray, 1) + 1)`。
要将这个过程整合到宏中,首先通过录制宏来获取基本框架,然后手动编辑宏代码,添加必要的`ReDim`语句。例如,假设要创建一个宏来读取一系列单元格的值,并且这些单元格的数量是变化的,可以这样做:
```vba
Sub ResizeArrayMacro()
Dim MyArray() As Variant
Dim i As Long
Dim LastRow As Long
' 确定需要读取数据的最后一个单元格的行号
LastRow = Cells(Rows.Count,
参考资源链接:[Excel宏教程:VBA数组使用与宏操作](https://wenku.csdn.net/doc/142zv8b7n8?spm=1055.2569.3001.10343)
阅读全文