在VBA中将列放入数组的直接方法

时间:2014-04-05 13:58:19

标签: arrays excel excel-vba vba

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

所以基本上如果我有:

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

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

  1. 以某种方式引用Col A(即myColumn =列(" Col A")
  2. 将列值插入数组(即myArray = myColumn
  3. 感谢您的帮助!

3 个答案:

答案 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方法与FilterJoinSplit函数结合使用非常有用,例如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

有多种方法可以使范围和数组变量的大小。