在Excel VBA动态数组
如果你的阵列尺寸的增加,你不想要固定数组的大小,你可以使用ReDim关键字。 Excel VBA中然后自动改变所述阵列的大小。
一些数据添加到A列
将工作表上的一个命令按钮并添加以下代码行:
1.首先,我们声明数组命名编号。同时声明整数类型的两个变量。一位叫大小和一只叫我。
Dim numbers() As Integer, size As Integer, i As Integer
注:数组有没有大小呢。数字的大小,我随机选择了这里,你可以使用任何名字。请记住,是指这些名字在你的代码的其余部分。
2.接下来,我们确定该阵列的尺寸和其存储到可变大小。您可以使用工作表函数COUNTA这一点。添加以下代码行:
size = WorksheetFunction.CountA(Worksheets(1).Columns(1))
3.我们现在知道了数组的大小,我们可以REDIMENSION它。添加以下代码行:
ReDim numbers(size)
4.接下来,我们初始化数组的每个元素。我们使用一个循环。
For i = 1 To size numbers(i) = Cells(i, 1).Value Next i
5.我们显示使用一个MsgBox阵列的最后一个元素。
MsgBox numbers(size)
6.退出Visual Basic编辑器,并点击片上的命令按钮。
结果:
7.我们清楚地看到为什么这被称为动态数组,将号码添加到列A
8.再次单击命令按钮。
结论:Excel VBA中已经自动改变了这种动态数组的大小。
9.当您使用ReDim关键字,则擦除当前存储阵列中的任何现有数据。例如,下面的代码行添加到先前创建的代码:
ReDim numbers(3) MsgBox numbers(1)
结果:
数组为空。
10.当你想保存的数据存在数组中,当你REDIMENSION它,使用保留关键字。
ReDim Preserve numbers(3) MsgBox numbers(1)
结果: