使用 VBA 重命名所有工作表(复杂)在本节中,我们将介绍两个 VBA 代码,分别用于为所有工作表名称添加前缀/后缀或将所有工作表基于每个工作表中特定单元格的值进行重命名。
注意:VBA 宏无法撤销。因此,建议在继续这些操作之前创建工作簿的备份,以防需要恢复原始数据。
步骤 1:创建新模块
按 Alt + F11 打开 Visual Basic for Applications (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 的值进行了重命名,分别是“Test1”、“Test2”和“Test3”。