可使用vba批量重命名工作表:一、按序号命名,运行代码将所有表命名为“数据表1”“数据表2”等;二、依单元格内容命名,从“命名清单”表a列读取名称依次赋值。

如果您需要为Excel工作簿中的多个工作表统一修改名称,手动逐一更改效率低下且容易出错。以下是通过VBA实现批量重命名工作表的具体操作方法:
一、使用VBA代码按序号批量命名
该方法适用于将所有工作表按固定格式(如“Sheet1”“Sheet2”)或自定义前缀加序号的方式重命名。需在VBA编辑器中插入并运行脚本,自动遍历当前工作簿所有工作表并赋新名。
1、按 Alt + F11 打开VBA编辑器。
2、在左侧“工程资源管理器”中,右键点击当前工作簿名称,选择“插入” → “模块”。
3、在右侧代码窗口中粘贴以下代码:
Sub BatchRenameByIndex()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Name = "数据表" & i
Next i
End Sub
4、将光标置于代码中任意位置,按 F5 运行宏。
5、返回Excel界面,查看各工作表是否已按“数据表1”“数据表2”等格式完成重命名。
二、使用VBA依据单元格内容批量命名
该方法适用于工作表名称已预先列在某一工作表的指定列中(例如Sheet1的A1:A10),VBA读取该区域内容后,依次为对应序号的工作表赋予名称。
1、新建一个工作表,命名为“命名清单”,在A1单元格开始向下输入目标工作表名,每行一个,确保数量不超过实际工作表总数。
2、按 Alt + F11 打开VBA编辑器,插入新模块。
3、粘贴以下代码:
Sub BatchRenameFromRange()
Dim ws As Worksheet, i As Integer
Dim nameRange As Range
Set nameRange = Worksheets("命名清单").Range("A1:A" & Worksheets("命名清单").Cells(Rows.Count, 1).End(xlUp).Row)
i = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Name "命名清单" And i
On Error Resume Next
ws.Name = Trim(nameRange.Cells(i, 1).Value)
On Error GoTo 0
i = i + 1
End If
Next ws
End Sub
4、运行宏前请确认“命名清单”工作表存在且A列无空值或非法字符(如“/ \ [ ] * ? :”)。
5、按 F5 执行,系统将跳过“命名清单”本身,按A列顺序为其余工作表重命名。
三、使用VBA按文件夹内工作表索引名批量命名
该方法适用于工作簿中已有多个工作表,希望按其原始显示顺序(即标签从左至右位置)提取索引编号并组合成新名称,例如“Report_01”“Report_02”。
1、按 Alt + F11 打开VBA编辑器,插入新模块。
2、粘贴以下代码:
Sub BatchRenameByPosition()
Dim ws As Worksheet, idx As Integer
idx = 1
For Each ws In ThisWorkbook.Worksheets
ws.Name = "Report_" & Format(idx, "00")
idx = idx + 1
Next ws
End Sub
3、运行前确保当前工作簿不含名称重复或超长(超过31字符)的工作表,否则会触发错误提示。
4、按 F5 运行,所有工作表将被重命名为“Report_01”“Report_02”……格式。











