如果我将七个小矮人的名字作为字符串放在单元格 H1 到 N1 中,然后选择单元格 B1 到 B7,然后插入公式 =TRANSPOSE(H1:N1),然后按 Ctrl-Shift-Enter,然后将七个小矮人插入到B 列如预期。
但是,如果我使用 VBA 尝试相同的操作,如下所示:
然后我收到运行时错误“1004”:对象“_Global”的方法“范围”失败。
Option Explicit
Option Base 1
Sub TransposeArray()
Dim A() As Variant
Dim nr As Integer
nr = 7
ReDim A(nr) As Variant
A(1) = "Doc"
A(2) = "Grumpy"
A(3) = "Happy"
A(4) = "Sleepy"
A(5) = "Bashful"
A(6) = "Sneezy"
A(7) = "Dopey"
' this line below fails with run-time error '1004'
Range("A1:A " & nr) = WorksheetFunction.Transpose(A)
' below line WITHOUT Transpose works fine
'Range("A1:G1") = A
End Sub
我已经用 Excel 2019 和旧版本 2007 尝试过此操作。同样的错误。
我做错了什么?
您的地址中有不必要的空格:
Range("A1:A" & nr) = WorksheetFunction.Transpose(A)
' ===