使用 VBA 重命名所有工作表(较复杂)本节将为您介绍两段实用的 VBA 代码:一段可为所有工作表名称批量添加前缀或后缀,另一段则能根据各工作表中指定单元格的值自动重命名所有工作表。
注意:VBA 宏操作无法撤销。因此,建议您在执行前备份工作簿,以便随时恢复原始数据。
步骤 1:创建新模块
按下 Alt + F11,即可打开 Visual Basic for Applications (VBA)编辑器。单击插入 > 模块,即可创建一个新模块。VBA 编辑器中的模块“ />步骤 2:将 VBA 代码复制到模块窗口
根据您的需求,复制以下任一段 VBA 代码,并粘贴到已打开的模块窗口中。
VBA 代码 1:为所有工作表名称添加前缀/后缀Sub renameSheetsWithPrefixSuffix()
'Update by ExtendOffice
Dim xWs As Worksheet
Dim xPrefix As String
Dim xSuffix As String
xPrefix = "MyPre_" 'Replace "MyPre_" with your desired prefix.
xSuffix = "_MySuf" 'Replace "_MySuf" with your desired suffix.
On Error Resume Next
For Each xWs In Worksheets
xWs.Name = xPrefix & xWs.Name & xSuffix 'This snippet adds both prefix and suffix to sheet names. Adjust as needed.
Next xWs
End Sub注意:
在此代码中,若要为所有工作表名称添加前缀和后缀,请将第 6 行和第 7 行中的 "MyPre_"和 "_MySuf"分别替换为您所需的前缀和后缀。若只需添加前缀,请将第 10 行代码修改为 xWs.Name = xPrefix & xWs.Name。若只需添加后缀,请将第 10 行代码修改为 xWs.Name = xWs.Name & xSuffix。VBA 代码 2:根据每个工作表中指定单元格的值重命名所有工作表Sub renameSheetsBasedOnCellValue()
'Update by ExtendOffice
Dim xWs As Worksheet
Dim xRgAddress As String
xRgAddress = "A1" 'Replace "A1" with your target cell address.
On Error Resume Next
For Each xWs In Worksheets
xWs.Name = xWs.Range(xRgAddress).Value
Next xWs
End Sub注意:在本段 VBA 代码中,请务必将第 5 行的 "A1" 替换为实际存放各工作表新名称的单元格地址。同时,请确保每张工作表中对应的单元格(本例为 A1)均包含有效内容,否则运行此 VBA 代码将触发运行时错误“1004”。
步骤 3:运行 VBA 代码
在模块窗口中,按下 F5 键或单击按钮,即可执行已粘贴的代码。
结果
VBA 代码 1 的结果: 所有工作表名称均被添加了前缀“Pre_”和后缀“_Suf”。 VBA 代码 2 的结果: 所有工作表均已根据各自 A1 单元格的值(分别为“Test 1”、“Test 2”和“Test 3”)完成重命名。