如何使用vba复制和移动工作表?

您可以使用 VBA 代码在 Excel 中复制和移动工作表,在本教程中我们将学习不同的方法来执行此操作。

复制同一工作簿中的工作表

如果要复制同一工作簿中的工作表,可以在使用复制方法的地方使用以下代码。

 Sheets("Sheet5").Copy Before:=Sheets(1)

在此代码中,sheet1 是工作簿的第一个工作表,当您运行此代码时,它会复制工作簿的第一个工作表之前名为“Sheet5”的工作表。

将一张纸复制到同一个活页夹中

如果你想在第一张纸之后复制它,代码如下。

 Sheets("Sheet5").Copy After:=Sheets(1)

如果你想在第一张纸之后复制它,代码如下。

 Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")

当您运行此 VBA 代码时,它会复制“Sheet3”之前和之后的“Sheet5”。

vba 代码(如果您想在第一张纸之后复制它)

使用以下代码行,您可以复制工作簿最后一张工作表之后的工作表。它使用sheet.count来获取工作表的数量,然后使用计数来复制最后的工作表。

 Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
在活页夹中的最后一页之后复印一页

有用的链接:运行宏宏记录器Visual Basic 编辑器个人宏手册

使用新名称复制同一工作簿中的工作表

如果你想复制一个工作表然后立即重命名它,你需要使用 name 属性,就像下面的代码一样。

 Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
将工作表复制到具有新名称的同一工作簿中

在同一工作簿中移动工作表

要移动同一工作簿中的工作表,您需要使用 move 方法,如以下代码所示。

 Sheets("Sheet5").Move After:=Sheets(1)
在同一个活页夹中移动一张纸

此代码会将“Sheet5”移到“Sheet2”之前,如上面的快照所示。

将工作表复制到新工作簿

当您使用复制方法而不在当前工作簿中定义工作表时,VBA 将打开一个新工作簿并将该工作表复制到该工作簿中。

 Sheets("Sheet5").Copy

并将工作表移至新工作簿。

 Sheets("Sheet5").Move

将多张工作表复制到新工作簿

如果您想一次向新工作簿添加多个工作表,请使用如下代码。

 Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy

上面的代码创建了一个工作表数组,然后将它们全部复制到一个新的工作簿中。

将工作表复制到另一个工作簿

如果要将工作表复制到另一个已打开的工作簿,您可以在参数之后或之前提及工作簿名称。

 Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)

上面的代码从活动工作簿复制 Sheet1 并将其添加到已打开的 Book1.xlsx 的第一张工作表之前。

如果你想移动它。

 Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)

将工作表复制到关闭的工作簿

有一种方法可以将工作表复制到关闭的工作簿中,而无需打开它。看下面的代码。

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

在此代码中,您拥有 myBook 变量,然后为其分配了一个工作簿。我们已禁用屏幕更新,以便代码可以在后端执行任务。

从另一个工作簿复制工作表而不打开它

以同样的方式,您可以从关闭的工作簿中复制和移动工作表。看下面的代码。

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注