直接在VBA中放入一个数组的列

我想把列的值放在数组或列表中,而不必执行for循环。

所以基本上如果我有:

Col A --------- 212 411 432 

我想把这些值放在一个数组或列表中。 这就是我正在考虑这样做,但我不知道的VBA语法:

  1. 以某种方式参考列A(即myColumn =列(“列A”)
  2. 将列值插入数组(即myArray = myColumn

我感谢您的帮助!

这是一个方法:

 Sub dural() Dim myColumn As Range Dim myArray() as Variant Set myColumn = Range("A1:A3") myArray = myColumn For X = 1 To 3 MsgBox myArray(X, 1) Next X End Sub 

有办法使范围和数组variables的大小。

尝试这个

 Sub Main() Dim arr() As Variant arr = Range("A1:A3") For i = LBound(arr) To UBound(arr) Debug.Print arr(i, 1) Next End Sub 

另外,在工作时只有一列或一行,您可以使用TRANSPOSE创build一1D变体数组,而不是默认的2D数组(如Santosh所做的那样)。

这个1D方法可以和FilterJoinSplit函数结合使用,比如可以用一个没有循环的特定条件的行号来填充一个数组吗?

 Sub OneD() Dim arr arr = Application.Transpose(Range("A1:A3").Value2) End Sub 

要么

 Sub TwoD() Dim arr arr = Range("A1:A3").Value2 End Sub