珍妮弗(Jennifer)设置好工作簿的第一个工作表后,经常不得不创建工作表的副本,通常副本数量很多。例如,对于她而言,需要创建20个特定工作表的副本并不稀奇。她想知道是否有一种方法可以轻松地制作多份副本。右键单击并使用“移动/复制”功能一段时间后会变得很累。

有一种方法可以更有效地使用移动/复制选项。例如,假设您要从原始的工作表中创建20个工作表。您可以按照以下步骤操作:

。确保已选择单个工作表。

。用鼠标右键单击工作表选项卡。 Excel将显示一个上下文菜单。

。从上下文菜单中选择移动或复制。 Excel将显示“移动或复制”对话框。

。选择(移至末尾)选项。

。确保选中创建副本复选框。

。单击确定。现在,您有工作表的两个副本(原始副本和刚创建的副本)。

。通过单击第一个工作表选项卡并按住Shift键,同时单击最后一个工作表选项卡,选择两个工作表。

。用鼠标右键单击所选的工作表选项卡。 Excel将显示一个上下文菜单。

。从上下文菜单中选择移动或复制。 Excel将显示“移动或复制”对话框。

。选择(移至末尾)选项。

。确保选中创建副本复选框。

。单击确定。现在,您有四个工作表副本。

。通过单击第一个工作表选项卡并在单击最后一个工作表选项卡时按住Shift键,可以选择所有工作表。

。用鼠标右键单击所选的工作表选项卡。 Excel将显示一个上下文菜单。

。从上下文菜单中选择移动或复制。 Excel将显示“移动或复制”对话框。

。选择(移至末尾)选项。

。确保选中创建副本复选框。

。单击确定。现在,您有八份工作表。

。通过单击第一个工作表选项卡并在单击最后一个工作表选项卡时按住Shift键,可以选择所有工作表。

。用鼠标右键单击所选的工作表选项卡。 Excel将显示一个上下文菜单。

。从上下文菜单中选择移动或复制。 Excel将显示“移动或复制”对话框。

。选择(移至末尾)选项。

。确保选中创建副本复选框。

。单击确定。现在,您有16个工作表副本。

。通过单击第一个工作表选项卡并在单击第四个工作表选项卡时按住Shift键,从而选择四个工作表。

。用鼠标右键单击所选的工作表选项卡。 Excel将显示一个上下文菜单。

。从上下文菜单中选择移动或复制。 Excel将显示“移动或复制”对话框。

。选择(移至末尾)选项。

。确保选中创建副本复选框。

。单击确定。现在,您有20个工作表副本。

这可能看起来像很多步骤,但实际上并非如此,您要做的只是使用移动/复制功能五次(而不是20次)来获得所需数量的工作表。但是,这种方法有一个警告:如果您要复制的工作表中包含任何已定义的表,那么您将无法越过步骤8。尝试步骤9时,您会收到一条消息,指出当任何一个工作表包含表格时,您将无法复制或移动它们。 (您可以复制或移动包含表的单个工作表,但不能复制或移动它们。)

您可以使用另一个快捷方式,它不涉及使用“移动”或“复制”对话框。您需要做的就是选择要复制的工作表,然后将工作表名称(在工作表选项卡上)拖到右侧。您会在鼠标指针旁边看到一个小的“文档”图标。此时按Ctrl键,图标内将出现一个加号。当您释放鼠标按钮时,将复制工作表。您也可以通过这种方式复制工作表组,除非该工作表中再次有已定义的表。

复制工作表的另一种方法是执行以下操作:

。根据需要创建“主”工作表。

。添加足够的空白工作表,以便每个要制作的副本都有一个。 (添加空白工作表的一种好方法是按Shift + F11。)

。选择主工作表。

。按Ctrl + A。 Excel将选择主工作表中的所有内容。

。按Ctrl + C。现在,所有内容都将复制到剪贴板。

。单击工作表选项卡为您创建的第一个空白工作表。

。在工作表选项卡上单击创建的最后一个空白工作表时,请按住Shift键。

。按Ctrl + V。剪贴板的内容粘贴到您选择的每个工作表中。

这将复制主工作表中的所有内容,但不会复制某些内容,例如列宽,行高或打印布局设置。

您可以执行一些其他步骤来复制其中一些步骤,但是很难全部复制它们。

但是,出于纯粹的速度和便利性,使用宏创建副本是最简单的(在我看来)。这是一个非常简单的宏,它将复制所选工作表,直到工作簿中总共有20个工作表为止:

Sub SimpleCopy1()

Do While Sheets.Count < 20         ActiveSheet.Copy After:=Sheets(Sheets.Count)

Loop End Sub

如果您的工作簿中已经有其他工作表(除了您要复制的工作表),那么使用此版本将使您受益:

Sub SimpleCopy2()

Dim J As Integer

For J = 1 To 20         ActiveSheet.Copy After:=Sheets(Sheets.Count)

Next J End Sub

您可以让宏询问用户应制作多少个副本,从而使您的宏更通用:

Sub SimpleCopy2()

Dim J As Integer     Dim iWanted As Integer

On Error GoTo Done     iWanted = Cint(InputBox("Number of copies?"))



If iWanted >0 And iWanted < 201 Then         For J = 1 To iWanted             ActiveSheet.Copy After:=Sheets(Sheets.Count)

Next J     End If Done:

On Error GoTo 0 End Sub

此宏还将工作表副本的数量限制为1到200之间。(超出该范围,它将不执行任何操作。)如果您的工作簿中已有大量工作表,并且添加的工作表超过工作簿中允许的工作表数量。

无论选择哪种宏方法,将其添加到快速访问工具栏中或为其分配快捷键都是一个好主意。这样,您可以非常快速地复制工作表。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(1600)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。