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

工作环境:Excel 2013。

目标:

  1. 复制整张表格
  2. 创build另一个表
  3. 转置粘贴复制的工作表到这个新的工作表。

我使用的代码如下:

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

但是,当我运行它,我得到一个错误

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

任何人都可以帮我弄清楚为什么?

也许你之后的代码如下所示:

 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 

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

同样,需要在范围对象上调用PasteSpecial方法,而不是在表单对象上调用。

你可以试试这个,例如:

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