VBA – 粘贴variables值

我有一个问题在Excel中粘贴到一个指定的范围。 我有下面的代码,但是[E1:E15]的输出在整个范围内是0。 我想看到的是15到15。

我无法find解决这个具体问题的办法(部分原因是我无法确定这个问题是用Excel术语来定义的)。 任何帮助这个特定的代码或更自然的方式来完成这个在VBA非常赞赏。 谢谢!

 Sub TEST() Dim SIZE As Integer SIZE = 15 Dim VECTOR() As Integer ReDim VECTOR(SIZE) Dim i For i = 1 To SIZE VECTOR(i) = i Next i [E1:E15].Value = VECTOR End Sub 

您正试图将水平数组传递到垂直范围。

转置数组或使用第二维1创build该数组2D:

 Sub TEST() Dim SIZE As Integer SIZE = 15 Dim VECTOR() As Integer ReDim VECTOR(1 To SIZE, 1 To 1) Dim i For i = 1 To SIZE VECTOR(i, 1) = i Next i [E1:E15].Value = VECTOR End Sub 

转置版本:

 Sub TEST() Dim SIZE As Integer SIZE = 15 Dim VECTOR() As Integer ReDim VECTOR(1 To SIZE) Dim i For i = 1 To SIZE VECTOR(i) = i Next i [E1:E15].Value = Application.Transpose(VECTOR) End Sub 

一个警告:移调对它可以处理的项目数量有限制。

要不就

 [E1:E15] = [row(E1:E15)]