如果你的阵列尺寸的增加,你不想要固定数组的大小,你可以使用ReDim关键字。 Excel VBA中然后自动改变所述阵列的大小。

一些数据添加到A列

Dynamic Array in Excel VBA

将工作表上的一个命令按钮并添加以下代码行:

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编辑器,并点击片上的命令按钮。

结果:

Last Element of the Array

7.我们清楚地看到为什么这被称为动态数组,将号码添加到列A

Add Number

8.再次单击命令按钮。

Dynamic Array Result

结论:Excel VBA中已经自动改变了这种动态数组的大小。

9.当您使用ReDim关键字,则擦除当前存储阵列中的任何现有数据。例如,下面的代码行添加到先前创建的代码:

ReDim numbers(3)

MsgBox numbers(1)

结果:

Without Preserve

数组为空。

10.当你想保存的数据存在数组中,当你REDIMENSION它,使用保留关键字。

ReDim Preserve numbers(3)

MsgBox numbers(1)

结果:

With Preserve