如何在vba中创建动态表?
动态数组是您可以在运行代码时调整数组大小并为其添加更多值的东西。在本教程中,我们将探索编写可以调整大小和添加更多元素的代码的方法。
在VBA中创建动态表
- 首先,声明一个数组及其名称。
- 之后,元素的数量将括号留空。
- 现在使用 ReDim 指令。
- 最后,指定要添加到数组的元素数量。
Dim myArray() As String ReDim myArray(5)
不要忘记阅读 Joshua 撰写的有关固定和动态数组性能的文章。
动态多维数组
我们使用的示例是一维数组,同样,您也可以使用 ReDim 语句创建动态多维数组。
Dim myArray() As String ReDim myArray(5, 8)
在 VBA 中向动态数组添加新元素
如果不能向动态数组添加新元素,则动态数组将毫无意义。在接下来的示例中,我们将了解在重新定义数组中的元素数量后如何添加新元素。
'declaring array with no element. '--------------------- Dim iNames() As String '--------------------- 'declaring variables to store counter _ 'and elements from the range. '---------------------- Dim iCount As Integer Dim iElement As Integer '---------------------- 'get the last row number to decide the _ 'number of elements for the array. '------------------------------------ iCount = Range("A1").End(xlDown).Row '------------------------------------ 're-defining the elements for the array. '------------------- ReDim iNames(iCount) '------------------- 'using a for loop to add elements in the array 'from the range starting from cell A1 '-------------------------------------------------- For iElement = 1 To iCount iNames(iElement - 1) = Cells(iElement, 1).Value Next iElement '-------------------------------------------------- 'print all the elements from the 'to the immediate window '-------------------- Debug.Print iNames(0) Debug.Print iNames(1) Debug.Print iNames(2) '--------------------
让我们逐步理解这段代码。
- 在第一步中,您声明了一个名为“myArray”的数组。
- 之后,您有两个变量来保存循环的计数器值,稍后您需要在代码中使用它们来从范围中获取值并将这些值作为元素添加到数组中。
- 然后,您有一行代码来获取范围的最后一行,这可以帮助您了解需要添加到数组中的元素。
- 在第四步中,您使用 ReDim 语句使用上一步中获得的最后一个行号重新定义数组元素。
- 然后是 FOR LOOP(For Next),它循环从单元格 A1 开始的范围,从那里获取值并将它们作为元素一一添加到数组中。
- 最后,您可以使用 Debug.Print 语句来打印即时窗口中的所有项目。
当我向范围添加新值并再次运行代码时,它会自动将该元素添加到数组并将其打印到立即窗口。