可采用四种方法批量创建并重命名工作表:一、用数据透视表“显示报表筛选页”自动生成;二、运行vba宏精准控制命名;三、wps会员使用“工作表按内容拆分”功能;四、借助易用宝插件按模板批量新建。

如果您已在Excel中列出待创建工作表的名称(如员工姓名、部门名称等),但需逐一新建并重命名Sheet页,则可能是由于手动操作效率低或缺乏自动化手段。以下是解决此问题的步骤:
一、使用数据透视表“显示报表筛选页”功能
该方法无需编程,利用Excel内置的数据透视表机制,根据源列中唯一值自动生成同名工作表,适用于名称无重复、不含非法字符(如 / ? * [ ])且长度≤31个字符的场景。
1、在Sheet1的A列输入全部待建工作表名称(例如A1:A10为“张三”“李四”…“王五”),确保无空行。
2、选中A1:A10区域,点击【插入】→【数据透视表】→选择【现有工作表】,指定放置位置为Sheet1的D1单元格,点击【确定】。
3、在右侧“数据透视表字段”窗格中,将“A列字段”拖入“筛选器”区域。
4、切换至【分析】选项卡(Excel 2016及以上)或【选项】选项卡(旧版),点击【显示报表筛选页】。
5、在弹出窗口中确认字段名称,点击【确定】,Excel将按A列每个值自动创建独立工作表,并以该值命名。
6、右键任一工作表标签,选择【选定全部工作表】,按Ctrl+A全选单元格,再点击【开始】→【清除】→【全部清除】,删除各表左上角默认生成的透视表残留内容。
二、运行VBA宏批量创建指定名称工作表
该方法可精准控制命名逻辑、跳过非法名称、自动校验重复,并支持从任意列读取,适合对命名规范性要求高或需集成到日常流程中的用户。
1、按下Alt + F11打开VBA编辑器。
2、在左侧“工程资源管理器”中,右键当前工作簿名称,选择【插入】→【模块】。
3、将以下代码完整粘贴至模块空白区:
Sub CreateSheetsFromColumn()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim cell As Range
Dim sheetNamesRng As Range
Dim sheetName As String
SetsourceSheet = ThisWorkbook.Sheets("Sheet1")
SetsheetNamesRng = sourceSheet.Range("A1:A" & sourceSheet.Cells(sourceSheet.Rows.Count, "A").End(xlUp).Row)
ForEach cell In sheetNamesRng
sheetName = Trim(cell.Value)
If sheetName = "" Then GoTo Continue
If Not IsValidSheetName(sheetName) Then
MsgBox "跳过无效名称: " & sheetName, vbExclamation
GoTo Continue
End If
Set targetSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
OnError Resume Next
targetSheet.Name = sheetName
If Err.Number 0 Then
MsgBox "工作表 """ & sheetName & """ 已存在或名称无效,已跳过。", vbExclamation
Err.Clear
Application.DisplayAlerts = False
targetSheet.Delete
Application.DisplayAlerts = True
End If
OnError GoTo 0
Continue:
Next cell
MsgBox "工作表已生成完成!", vbInformation
End Sub
Function IsValidSheetName(sheetName As String) As Boolean
If sheetName Like "*[\/?*[]]*" Or Len(sheetName) > 31 Then
IsValidSheetName = False
Exit Function
End If
IsValidSheetName = True
End Function
4、关闭VBA编辑器,返回Excel界面,按Alt + F8调出宏列表,选中“CreateSheetsFromColumn”,点击【运行】。
三、借助WPS“工作表按内容拆分”功能(WPS会员专属)
该方法专为WPS表格设计,操作极简,直接基于某列内容将当前工作表结构复制并拆分为多个同名Sheet页,无需预设模板或编写代码,适合WPS高频用户。
1、确保待拆分数据位于单一连续区域(如A1:B100),且首行为标题行。
2、选中该数据区域(含标题),点击【数据】选项卡→【拆分表格】→【工作表按照内容拆分】。
3、在弹出对话框中:勾选“数据包含标题”,设置“拆分依据”为含名称的列(如“姓名”列),选择“拆分后的工作表保存到:不同的新工作表”。
4、点击【开始拆分】,WPS将自动为每一类名称值创建一个新工作表,并以该值命名。
5、拆分完成后,点击【查看】按钮即可进入生成结果工作簿。
四、使用易用宝插件“批量新建工作表(自模板)”
该方法依赖第三方Excel增强插件“易用宝”,支持基于已有模板复制结构、自动填充变量、批量公式转值,适合需保持格式统一且含动态内容(如引用总表字段)的批量建表任务。
1、提前准备一个标准模板工作表(如“模板”),其中E5、M5等单元格已填入类似=INDEX(总表!B:B,SHEET())的动态公式。
2、确保“总表”中B列含全部人员姓名,且姓名数量与待建表数一致。
3、点击【易用宝】→【批量新建工作表(自模板)】。
4、在弹窗中选择“模板”工作表,设置生成数量为总表B列非空行数,勾选“自动填充公式”选项。
5、点击【确定】执行,插件将依序创建新工作表并自动计算公式结果。
6、再次点击【易用宝】→【数值转换】→【公式转数值 当前工作簿】,固化所有公式输出为静态值。











