在Excel VBA中倾倒数组垂直方向

当我正在将数组Dim A (1 To 3) As String转储到单元格A1:A3垂直范围时,数组的第一个单元格将被复制到所有范围。

例如,假设A(1) = "a" , A(2) = "b" , A(3) = "c"所以结果是在所有A1:A3范围内。

代码是Range("A1:A3").Value = A

我究竟做错了什么?

谢谢!

 Sub Tester() Dim a(1 To 3) a(1) = "a" a(2) = "b" a(3) = "c" Range("A1:A3").Value = a 'all "a" Range("A1:C1").Value = a 'works, because left-to-right is the default Range("A1:A3").Value = Application.Transpose(a) 'works End Sub 

我通常的做法是将数组重新命名为与对象范围相同的维度

对于范围“A1:A3”是一个3 * 1的二维数组

 Sub testing() Dim a() ' a(1 to rowCount, 1 to columnCount) ReDim a(1 To 3, 1 To 1) a(1, 1) = "A" a(2, 1) = "B" a(3, 1) = "C" Range("A1:A3").Value = a End Sub