在VBA中使用WorksheetFunction.Transpose时运行tim错误1004,但如果使用excel TRANSPOSE函数则工作正常

问题描述 投票:0回答:1

如果我将七个小矮人的名字作为字符串放在单元格 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 尝试过此操作。同样的错误。

我做错了什么?

excel vba
1个回答
0
投票

您的地址中有不必要的空格:

Range("A1:A" & nr) = WorksheetFunction.Transpose(A)
'         ===
© www.soinside.com 2019 - 2024. All rights reserved.