Koen有一个工作表,该工作表的A列中有一个名称列表。他需要为列表中的每个名称创建一个工作表,并根据该名称命名该工作表。 Koen怀疑这将需要一个宏,但是他不确定如何执行此任务。

如果使用宏,则此任务相对容易完成,并且有许多方法可以使用。一种简单的方法是选择工作表名称列表,然后运行以下宏。

Sub AddWorksheetsFromSelection()

Dim CurSheet As Worksheet     Dim Source As Range     Dim c As Range

Set CurSheet = ActiveSheet     Set Source = Selection.Cells     Application.ScreenUpdating = False

For Each c In Source         sName = Trim(c.Text)

If Len(sName) > 0 Then                 Worksheets.Add After:=Worksheets(Worksheets.Count)

ActiveSheet.Name = sName         End If     Next c

CurSheet.Activate     Application.ScreenUpdating = True End Sub

宏实质上会抓住您选择的每个单元格,创建一个新的工作表,然后根据该单元格中的内容对该工作表进行重命名。

宏检查以确保特定的单元格实际上包含某些内容(如果单元格中没有名称,则无法重命名工作表),但它仍然不如可能的那样健壮。您的工作表名称列表中可能还存在其他缺陷,这些缺陷可能在运行宏时导致错误。例如,如果您的列表包含重复项,该怎么办?还是包含Excel不允许的名称?可以预见到这些错误(以及其他许多错误),并且更改了代码以处理此类情况。

尽管使用宏创建工作表既方便又快捷,但您可能需要注意,您不一定需要使用宏。实际上,您可以使用Excel的数据透视表功能来创建所需的工作表。对于本示例,让我们假设您所需的工作表名称在工作表的A列中,并且单元格A1包含该列的标题(例如“名称”或“工作表”)。

您要做的是基于这些名称创建数据透视表。请按照下列步骤操作:

。在列中选择任何工作表名称。

。显示功能区的“插入”选项卡。

。单击功能区左侧的数据透视表工具。 Excel将显示“创建数据透视表”对话框,其中已指定您的工作表名称范围。 (请参见图1。)

。单击确定。 Excel将创建数据透视表,并在屏幕右侧显示“数据透视表字段”窗格。

。在“数据透视表字段”窗格中,单击用于工作表列表的字段旁边的复选框。 (应该类似于“名称”

或“工作表”。)Excel调整数据透视表。

。将选中的字段名称(“名称”或“工作表”)拖到“数据透视表字段”窗格的“过滤器”区域中。 (请参见图2。)

。确保显示功能区的“分析”选项卡。 (在创建数据透视表后,默认情况下应该已经显示了它。)

。单击功能区左侧“数据透视表”工具下的向下箭头。 Excel将显示您可以做出的一些选择。

。单击“选项”选项右侧的向下箭头。 (不要单击“选项”选项本身;它会显示一个对话框。您只想单击向下箭头。)

。选择显示报告过滤器页面选项。 Excel将显示“显示报告筛选器页面”对话框。

。单击确定。 Excel为列表中的每个工作表名称创建一个工作表。

重要的是要意识到,此时每个新工作表都包含一个小的数据透视表。若要摆脱这些数据透视表,您可能会认为可以创建一组新工作表(单击第一个工作表选项卡,然后在单击最后一个工作表选项卡时按住Shift键),然后按Delete键。不过,在我的测试中,这是行不通的-Excel不允许您在组编辑模式下对数据透视表进行更改。相反,您需要依次显示每个工作表并删除数据透视表。

这似乎是一项艰巨的工作,但是如果您只需要一次创建所有这些工作表,则可能是一种相对较快的方法,而无需调用宏。

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

本提示(13463)适用于Microsoft Excel 2007、2010、2013和2016。