【发布时间】:2023-01-26 20:27:18
【问题描述】:
我想在一维数组中存储一系列可变大小。范围从 A2 开始,一直到同一列的最后一行。我的方法看起来像那样。这是有缺陷的。
Option Explicit
Sub Range_to_Array()
Dim i, j, k As Integer
Dim arr1(), arr2(), arr3(), arr4() As Variant
With Worksheets("table1")
arr1() = .Cells(.Range("A2"), .Range("A1").End(xlDown).Row)
End With
End Sub
【问题讨论】:
-
范围本质上是一个二维对象 - 单元格和列(即使只有一列)。如果您使用类似
arr1() = .Range(.Range("A2"), .Range("A1").End(xlDown)).Value的东西,那么您将将该范围的内容复制到arr1- 但如果您在“Watches”窗口中查看数组,您会注意到它是二维的。如果您需要它是 1d,则需要循环遍历每个单元格并将该值写入数组。