夜雨聆风学习资料网

ARTICLE · 1347545

Excel VBA编程-一键批量给工作表名称加上统一前缀或后缀

Excel VBA编程-一键批量给工作表名称加上统一前缀或后缀

你有没有过这种情况:一个工作簿里有十几张表,名字是「一月、二月、三月……」,你想给它们统一加上「2026-」前缀,变成「2026-一月、2026-二月」,方便区分年份;或者给所有表名后面统一加上「-报表」,一眼看出这是报表。手动双击逐个改名?几十张表要点到手软。

今天这一篇,教你用一段 VBA,一键给所有工作表名加上统一的前缀或后缀。

(本篇承接上篇「一键批量按清单重命名工作表」。先记住一个核心写法:表.Name 等于 新名字。Name 是工作表的一个属性,不是方法。)

核心知识点

给表名加前后缀,本质就是「字符串拼接」,在 VBA 里用 & 符号把文字连起来:

  • 加前缀:表.Name = "前缀" & 表.Name
  • 加后缀:表.Name = 表.Name & "后缀"
  • 前后都加:表.Name = "前缀" & 表.Name & "后缀"

我们还是用上篇学的 For Each 循环,遍历工作簿里的每一张工作表,让每张表都自动拼上前后缀。

【SVG 示意图】

案例一:一键给所有表名加上固定前缀(简单)

功能说明:把工作簿里每一张工作表的名字前面,都加上「2026-」。比如「销售」变成「2026-销售」。适合给一整年的表统一标注年份。

Sub 一键加前缀2026()    Dim 表 As Worksheet    For Each 表 In ActiveWorkbook.Worksheets        表.Name = "2026-" & 表.Name    Next 表    MsgBox "已在所有工作表名前加上前缀 2026-", vbInformationEnd Sub

操作步骤:

  1. 按 Alt 加 F11 打开 VBA 编辑器。
  2. 点「插入」→「模块」。
  3. 把上面代码整段粘进去。
  4. 按 F5 运行,弹窗提示完成。
  5. 回到 Excel,看工作表标签,名字前面都多了「2026-」。

案例二:运行时自己输入前缀文字(中等)

功能说明:案例一的前缀写死在代码里。这一版用 InputBox 弹窗,运行的时候你输入什么,就加什么前缀。更灵活,换前缀不用改代码。

Sub 一键自定义前缀()    Dim 表 As Worksheet    Dim 前缀 As String    前缀 = InputBox("请输入要加的前缀文字:", "设置前缀")    If 前缀 = "" Then Exit Sub    For Each 表 In ActiveWorkbook.Worksheets        表.Name = 前缀 & 表.Name    Next 表    MsgBox "已给所有工作表名加上前缀:" & 前缀, vbInformationEnd Sub

操作步骤:

  1. 同上,把代码粘进模块。
  2. 按 F5 运行,会弹出一个输入框。
  3. 输入想要的前缀,比如「部门-」,点确定。
  4. 所有表名前面就加上了你输入的内容。
  5. 如果不小心点取消或留空,代码会自动退出,不会乱改名字。

案例三:前后缀一起加,还能防止名字超长(实用小案例)

功能说明:真实场景常常既要前缀又要后缀,比如「报表-销售-备份」。但 Excel 规定表名最多 31 个字符,加太长会报错。这一版让你分别输入前缀和后缀,并在改名前先检查新名字有没有超过 31 个字符,超了就跳过并提醒,避免程序崩溃。

Sub 一键加前后缀()    Dim 表 As Worksheet    Dim 前缀 As String    Dim 后缀 As String    Dim 新名 As String    前缀 = InputBox("请输入前缀(可留空):", "前缀")    后缀 = InputBox("请输入后缀(可留空):", "后缀")    If 前缀 = "" And 后缀 = "" Then        MsgBox "前缀和后缀都为空,已取消。", vbExclamation        Exit Sub    End If    For Each 表 In ActiveWorkbook.Worksheets        新名 = 前缀 & 表.Name & 后缀        If Len(新名) > 31 Then            MsgBox "表「" & 表.Name & "」新名字超过31字符,已跳过。", vbExclamation        Else            表.Name = 新名        End If    Next 表    MsgBox "已为所有工作表加上前后缀。", vbInformationEnd Sub

操作步骤:

  1. 把代码粘进模块,按 F5 运行。
  2. 第一个框输入前缀,比如「报表-」;第二个框输入后缀,比如「-备份」。
  3. 程序会给每张表拼出新名字,先量一量长度,超过 31 就跳过并弹窗提醒,没超的才改名。
  4. 改名完成后弹窗报完成。

知识点小结

  1. 加前缀:表.Name = "前缀" & 表.Name;加后缀:表.Name = 表.Name & "后缀";前后都加就用两个 & 连起来。
  2. 用 For Each 遍历 ActiveWorkbook.Worksheets,可以对每一张表做同样的操作。
  3. 表名最长 31 个字符,不能包含 \ / ? * [ ] : 这些符号,也不能有两张表同名。改名前最好先备份工作簿。

往期精选

  • Excel VBA编程-一键批量按清单重命名工作表(让表名一目了然)
  • Excel VBA编程-一键自动调整行高和列宽(按内容自适应,AutoFit)
  • Excel VBA编程-一键批量设置行高和列宽(让表格更整齐)
  • Excel VBA编程-一键批量隐藏或显示指定的行(让报表更清爽)
  • Excel VBA编程-一键批量清除批注(删除多余评论)

西哥的AI幻觉

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料