从名称列表创建工作表(Microsoft Excel)
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。