我想将列的值放在数组或列表中,而不必执行for循环。
所以基本上如果我有:
Col A
---------
212
411
432
我想将这些值放在数组或列表中。我正在考虑这样做,但我不知道VBA语法:
感谢您的帮助!
答案 0 :(得分:1)
试试这个
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
答案 1 :(得分:1)
当使用单个列或行时,您可以使用TRANSPOSE
创建1D
变体数组,而不是默认的2D
数组(如Santosh所做的那样)。 / p>
此1D
方法与Filter
,Join
和Split
函数结合使用非常有用,例如Is it possible to fill an array with row numbers which match a certain criteria without looping?
Sub OneD()
Dim arr
arr = Application.Transpose(Range("A1:A3").Value2)
End Sub
或
Sub TwoD()
Dim arr
arr = Range("A1:A3").Value2
End Sub
答案 2 :(得分:0)
这是一种方式:
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
有多种方法可以使范围和数组变量的大小。