You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA调用WorksheetFunction.Transpose触发Run-time error 1004问题求助

VBA转置数组报错1004的解决方法

错误原因

你代码里的Range("A1:A " & nr)存在无效的单元格地址——A和变量nr之间多了一个空格,生成的地址是A1:A 7,Excel无法识别这种格式,因此触发Run-time error '1004'。

修正方案

把Range地址中的空格去掉,改为Range("A1:A" & nr)即可正常执行。修正后的完整代码如下:

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"

' 修正后的Range地址,移除了多余空格
Range("A1:A" & nr) = WorksheetFunction.Transpose(A)

' 横向赋值代码可正常保留
'Range("A1:G1") = A
End Sub

额外说明

如果后续遇到转置相关的其他异常,也可以尝试用Application.Transpose替代WorksheetFunction.Transpose,两者在处理数组维度时表现略有差异,前者在部分场景下容错性更强。

内容的提问来源于stack exchange,提问作者Angus Comber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:22:22