我正在执行一个宏,该宏将所选内容复制到当前活动的工作表中,并通过转置将其粘贴到另一个工作表中。我见过与类似问题有关的问题,但所有问题似乎都复杂得多,而对我来说,这个问题似乎很简单(令人困惑)。
以下代码有效(无转置):
Sub sbCopyRangeToAnotherSheet2()
Selection.Copy
Sheets("snippets").Activate
ActiveSheet.PasteSpecial
End Sub
以下代码引发
1004错误-应用程序定义或对象定义的错误
(仅更改:添加了转置):
Sub sbCopyRangeToAnotherSheet2()
Selection.Copy
Sheets("snippets").Activate
ActiveSheet.PasteSpecial transpose:=true
End Sub
答案 0 :(得分:3)
它不起作用,因为Worksheet.PasteSpecial方法没有Transpose
参数。
请注意,有2种不同的PasteSpecial
方法:
PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, NoHTMLFormatting)
您使用了第二个参数(它没有Transpose
参数,因此出错)。
正确的语法为:
Option Explicit
Public Sub sbCopyRangeToAnotherSheet2()
Selection.Copy
ThisWorkbook.Sheets("snippets").Range("A1").PasteSpecial Transpose:=True
End Sub
您可能会受益于阅读 How to avoid using Select in Excel VBA。