使用宏创建和命名工作表(Microsoft Excel)
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 [使用宏创建和命名工作表]。