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
相关产品推荐
相关产品推荐

