直接在VBA中放入一个数组的列
我想把列的值放在数组或列表中,而不必执行for循环。
所以基本上如果我有:
Col A --------- 212 411 432
我想把这些值放在一个数组或列表中。 这就是我正在考虑这样做,但我不知道的VBA语法:
- 以某种方式参考列A(即myColumn =列(“列A”)
- 将列值插入数组(即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
方法可以和Filter
, Join
和Split
函数结合使用,比如可以用一个没有循环的特定条件的行号来填充一个数组吗?
Sub OneD() Dim arr arr = Application.Transpose(Range("A1:A3").Value2) End Sub
要么
Sub TwoD() Dim arr arr = Range("A1:A3").Value2 End Sub