可使用VBA批量重命名Excel工作表:一、按序号自动命名,如“数据表1”;二、读取“命名清单”表A列内容逐一赋名;三、按关键词替换名称中指定字符串。

如果您需要为Excel工作簿中的多个工作表统一命名,手动逐个修改效率低下且易出错。以下是使用VBA实现批量重命名工作表的具体操作方法:
一、使用VBA代码按序号自动命名
该方法适用于将所有工作表按固定格式(如“Sheet1”“Sheet2”)或自定义前缀加序号的方式批量重命名。需确保工作表顺序与预期命名顺序一致。
1、按Alt+F11打开VBA编辑器。
2、在左侧工程资源管理器中,右键点击当前工作簿名称,选择“插入”→“模块”。
3、在新模块窗口中粘贴以下代码:
Sub RenameSheetsByIndex()
Dim i As Integer
For i = 1 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(i).Name = "数据表" & i
Next i
End Sub
4、将光标置于代码内任意位置,按F5运行宏。
5、关闭VBA编辑器,返回Excel查看工作表标签是否已更新为“数据表1”“数据表2”等。
二、使用VBA读取指定单元格内容批量命名
该方法适用于已有命名清单存放在某一工作表的连续单元格中(如Sheet1的A1:A10),可将清单内容逐一赋给其他工作表名称。
1、新建一个工作表,命名为“命名清单”,在A1开始向下依次输入目标工作表名(如“销售汇总”“库存明细”“采购记录”)。
2、按Alt+F11打开VBA编辑器,插入新模块。
3、粘贴以下代码:
Sub RenameSheetsFromRange()
Dim wsList As Worksheet, i As Integer
Set wsList = ThisWorkbook.Sheets("命名清单")
For i = 1 To Application.Min(wsList.Range("A1").CurrentRegion.Rows.Count, ThisWorkbook.Sheets.Count)
If Not i = wsList.Index Then ThisWorkbook.Sheets(i).Name = Trim(wsList.Cells(i, 1).Value)
Next i
End Sub
4、运行宏后,工作簿中前N个工作表(N为清单行数)将被重命名为A列对应内容。
三、使用VBA按工作表原始名称关键词替换重命名
该方法适用于对现有工作表名中重复出现的字符进行批量替换,例如将所有含“副本”的工作表名改为“正式版”。不改变工作表顺序,仅修改名称字符串。
1、按Alt+F11打开VBA编辑器,插入新模块。
2、粘贴以下代码:
Sub ReplaceInSheetNames()
Dim ws As Worksheet
Dim oldText As String, newText As String
oldText = "副本"
newText = "正式版"
For Each ws In ThisWorkbook.Sheets
If InStr(ws.Name, oldText) > 0 Then
ws.Name = Replace(ws.Name, oldText, newText)
End If
Next ws
End Sub
3、修改代码中oldText和newText的值为您需要替换的原文与目标文本。
4、运行宏,所有匹配原名称关键词的工作表将完成替换。











