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操作步骤:
按 Alt 加 F11 打开 VBA 编辑器。 点「插入」→「模块」。 把上面代码整段粘进去。 按 F5 运行,弹窗提示完成。 回到 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操作步骤:
同上,把代码粘进模块。 按 F5 运行,会弹出一个输入框。 输入想要的前缀,比如「部门-」,点确定。 所有表名前面就加上了你输入的内容。 如果不小心点取消或留空,代码会自动退出,不会乱改名字。
案例三:前后缀一起加,还能防止名字超长(实用小案例)
功能说明:真实场景常常既要前缀又要后缀,比如「报表-销售-备份」。但 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操作步骤:
把代码粘进模块,按 F5 运行。 第一个框输入前缀,比如「报表-」;第二个框输入后缀,比如「-备份」。 程序会给每张表拼出新名字,先量一量长度,超过 31 就跳过并弹窗提醒,没超的才改名。 改名完成后弹窗报完成。
知识点小结
加前缀:表.Name = "前缀" & 表.Name;加后缀:表.Name = 表.Name & "后缀";前后都加就用两个 & 连起来。 用 For Each 遍历 ActiveWorkbook.Worksheets,可以对每一张表做同样的操作。 表名最长 31 个字符,不能包含 \ / ? * [ ] : 这些符号,也不能有两张表同名。改名前最好先备份工作簿。
往期精选
Excel VBA编程-一键批量按清单重命名工作表(让表名一目了然) Excel VBA编程-一键自动调整行高和列宽(按内容自适应,AutoFit) Excel VBA编程-一键批量设置行高和列宽(让表格更整齐) Excel VBA编程-一键批量隐藏或显示指定的行(让报表更清爽) Excel VBA编程-一键批量清除批注(删除多余评论)
西哥的AI幻觉















































































