如何复制整个工作表并将粘贴转置到VBA中的另一个工作表?

时间:2017-05-11 08:28:46

标签: excel vba excel-vba

工作环境:Excel 2013。

目标:

  1. 复制整张表
  2. 创建另一张表
  3. 转置将复制的工作表粘贴到此新工作表中。
  4. 我使用的代码如下:

    Worksheets("Sheet4").Copy
    Worksheets("Master").PasteSpecial Transpose:=True
    

    然而,当我运行它时,我收到了错误

      

    应用程序定义或对象定义错误

    任何人都可以帮我弄明白为什么?

2 个答案:

答案 0 :(得分:1)

也许你喜欢以下代码:

Option Explicit

Sub CreateAndCopyTran()

Dim ws As Worksheet

' create a new worksheet, and name it "Master"
Set ws = ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(1))
ws.Name = "Master"

' copy the UsedRange and Transpose
Worksheets("Sheet4").UsedRange.Copy
ws.Range("A1").PasteSpecial xlPasteAll, Transpose:=True

End Sub

答案 1 :(得分:0)

您想复制Sheet4中的单元格,而不是工作表本身,因此您需要调用范围/单元格的复制方法。

类似地,需要在范围对象而不是工作表对象上调用PasteSpecial方法。

您可以尝试这样做,例如:

Sub test()
    Worksheets("Sheet4").UsedRange.Copy
    Worksheets("Master").Cells(1, 1).PasteSpecial Transpose:=True
End Sub