Jeff想要创建他的“主”工作表的副本,提示输入新工作表的名称,然后将其移至工作表选项卡的末尾,所有这些操作均来自宏。他试图记录宏来执行此操作,但是它没有用。

录制的宏不起作用的事实不足为奇。

记录宏时,您告诉Excel记录您执行的步骤。

这些步骤(在这种情况下)包括工作表的命名,因此名称被记录在宏中。尝试第二次运行宏,您将收到一个错误消息,因为您要在第二遍创建的工作表已经在第一遍创建。

在这种情况下,您必须手动编写宏。您可以从记录过程开始,您将获得如下代码:

Sub Macro1()

Sheets("Master").Select     Sheets("Master").Copy After:=Sheets(3)

Sheets("Master (2)").Select     Sheets("Master (2)").Name = "NewMaster"

End Sub

请注意,代码将工作表放置在第三张表的后面,然后始终使用相同的名称命名。这里有很多变化。您要做的就是将其更改为以下内容:

Sub CopyRename()

Dim sName As String     Dim wks As Worksheet     Worksheets("Master").Copy after:=Sheets(Worksheets.Count)

Set wks = ActiveSheet     Do While sName <> wks.Name         sName = Application.InputBox _           (Prompt:="Enter new worksheet name")

On Error Resume Next         wks.Name = sName         On Error GoTo 0     Loop     Set wks = Nothing End Sub

此宏会将名为“母版”的工作表复制到工作表列表的末尾(无论工作簿中有多少个工作表),并继续提示输入新的工作表名称,直到输入有效的名称为止。

注意:

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

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

本技巧(11929)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Creating_and_Naming_a_Worksheet_Using_a_Macro [使用宏创建和命名工作表]。