0

0

Excel如何批量修改工作表名称_利用VBA脚本一次性按列表命名

P粉602998670

P粉602998670

发布时间:2026-01-24 16:08:02

|

425人浏览过

|

来源于php中文网

原创

可使用vba脚本批量重命名工作表:先在“名称列表”工作表a列输入新名称,再运行脚本自动按顺序将其他工作表重命名,并校验数量匹配与命名规范。

excel如何批量修改工作表名称_利用vba脚本一次性按列表命名

如果您在Excel中需要将多个工作表的名称按照指定列表批量修改,手动逐一重命名效率低下且容易出错。以下是利用VBA脚本实现一次性按预设名称列表自动重命名工作表的操作步骤:

一、准备名称列表并放置于指定工作表

该方法依赖于一个包含新名称的源数据区域,需确保名称无重复、不为空、符合Excel工作表命名规范(长度≤31字符、不含\/:*?"|、不以空格开头或结尾)。建议将新名称集中放在当前工作簿的“Sheet1”(或其他固定名称的工作表)的A列,从A1开始连续排列

1、新建一个工作表,重命名为“名称列表”。

2、在该工作表的A1单元格开始,逐行输入目标工作表名称,例如:销售汇总、成本分析、利润明细、库存台账。

3、确认A列中无空行,且所有名称均满足Excel命名规则。

二、插入并运行基础VBA脚本

此脚本读取“名称列表”工作表A列内容,并依次将工作簿中除“名称列表”外的其他工作表按顺序重命名。执行前将自动校验数量匹配性,避免名称不足或溢出。

1、按Alt + F11打开VBA编辑器。

2、在左侧“工程资源管理器”中,右键当前工作簿名称,选择插入 → 模块

3、在右侧代码窗口中粘贴以下代码:

Sub BatchRenameSheets()

Dim wsList As Worksheet, newName As Range, i As Long

Dim targetSheets As Collection: Set targetSheets = New Collection

On Error Resume Next

Set wsList = ThisWorkbook.Worksheets("名称列表")

If wsList Is Nothing Then MsgBox "未找到名为【名称列表】的工作表!": Exit Sub

For Each sh In ThisWorkbook.Worksheets

If sh.Name "名称列表" Then targetSheets.Add sh

Next sh

If targetSheets.Count = 0 Then MsgBox "无可重命名的工作表!": Exit Sub

i = 1

For Each newName In wsList.Range("A1:A" & wsList.Cells(wsList.Rows.Count, "A").End(xlUp).Row)

If i

On Error Resume Next

targetSheets(i).Name = Trim(CStr(newName.Value))

If Err.Number 0 Then MsgBox "第" & i & "个工作表重命名失败:[" & newName.Value & "],错误:" & Err.Description: Err.Clear

On Error GoTo 0

i = i + 1

End If

Next newName

MsgBox "已完成尝试重命名 " & Application.Min(targetSheets.Count, wsList.Cells(wsList.Rows.Count, "A").End(xlUp).Row) & " 个工作表。"

End Sub

4、按F5运行该宏。

三、使用字典映射方式按原名精准替换

当需根据现有工作表原始名称精确匹配新名称(如将“Sheet1”改为“订单数据”,“Sheet2”改为“客户档案”),可采用字典结构实现定向重命名,避免顺序错位风险。需提前在“名称列表”工作表中建立两列对照关系:A列为当前名称,B列为目标名称。

1、在“名称列表”工作表中,A1输入当前工作表名(如“Sheet1”),B1输入对应新名称(如“订单数据”);A2、B2依此类推。

2、在VBA编辑器中新建模块,粘贴以下代码:

Sub RenameByMapping()

Dim wsList As Worksheet, dict As Object, r As Long

Set dict = CreateObject("Scripting.Dictionary")

On Error Resume Next

Set wsList = ThisWorkbook.Worksheets("名称列表")

If wsList Is Nothing Then MsgBox "未找到【名称列表】工作表!": Exit Sub

r = 1

Video Ocean
Video Ocean

人人皆导演,让视频创作变得轻松自如

下载

Do While Not IsEmpty(wsList.Cells(r, 1)) And Not IsEmpty(wsList.Cells(r, 2))

dict(wsList.Cells(r, 1).Value) = Trim(CStr(wsList.Cells(r, 2).Value))

r = r + 1

Loop

Dim sh As Worksheet

For Each sh In ThisWorkbook.Worksheets

If sh.Name "名称列表" And dict.Exists(sh.Name) Then

On Error Resume Next

sh.Name = dict(sh.Name)

If Err.Number 0 Then MsgBox "重命名【" & sh.Name & "】失败:" & Err.Description: Err.Clear

On Error GoTo 0

End If

Next sh

MsgBox "映射重命名完成。"

End Sub

3、运行该宏。

四、启用正则替换逻辑动态生成名称

适用于需对现有工作表名进行统一格式化处理的场景,例如将全部工作表名前缀统一添加“2024_”,或将“Q1”、“Q2”等简写扩展为“2024_Q1_Report”、“2024_Q2_Report”。本方法不依赖外部列表,直接在VBA中定义替换规则。

1、在VBA编辑器中新建模块,粘贴以下代码:

Sub RenameWithPattern()

Dim sh As Worksheet, oldName As String, newName As String

For Each sh In ThisWorkbook.Worksheets

If sh.Name "名称列表" Then

oldName = sh.Name

Select Case True

Case oldName Like "Q[1-4]"

newName = "2024_" & oldName & "_Report"

Case InStr(oldName, "数据") > 0

newName = Replace(oldName, "数据", "统计")

Case Else

newName = "2024_" & oldName

End Select

On Error Resume Next

sh.Name = Left(newName, 31)

If Err.Number 0 Then MsgBox "【" & oldName & "】→【" & newName & "】重命名失败:" & Err.Description: Err.Clear

On Error GoTo 0

End If

Next sh

MsgBox "模式化重命名执行完毕。"

End Sub

2、根据实际需求修改Select Case中的条件与newName赋值逻辑。

3、运行该宏。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

203

2023.11.20

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

492

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

377

2023.10.25

go语言goto的用法
go语言goto的用法

本专题整合了go语言goto的用法,阅读专题下面的文章了解更多详细内容。

138

2025.09.05

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1453

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

428

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

572

2023.08.02

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 21万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号