如何三步将多个工作表名称批量提取到列表?
用WPS表格三步批量提取工作表名称到列表:公式、VBA、Power Query全方案,免插件跨平台。

问题背景:为什么“批量提取工作表名称”会成为高频痛点
当工作簿里躺着几十甚至上百张分表——比如“2026-01”到“2026-12”的月度报表——手动把标签名称抄到目录页既低效又极易漏行。关键词“批量提取工作表名称”正是瞄准这一场景:让「工作表标签」一次性变成「可排序、可筛选、可超链接」的列表,为后续汇总、导航、打印目录提供干净的数据源。
2025 年末,WPS 在桌面端(Windows/Linux/macOS)与移动端(Android/iOS)共用同一套对象模型,因此下文公式、VBA、Power Query 三种解法在跨平台迁移时只需留意「宏是否被禁用」与「查询编辑器入口」差异,无需额外插件即可开箱即用。
功能定位:三种技术路线的边界与取舍
1. 公式法:零代码、即时刷新,但受版本函数库限制
2026 版已实装 SHEETNAME 系列函数,直接在单元格返回工作表名称数组。优点是无须启用宏,移动端也能实时计算;缺点是当工作表数量>50 时,动态数组重算会明显拖慢低配置电脑(经验性观察:i5-8G 环境在 80 表时输入公式后约 3 秒才回显)。
2. VBA 法:一次写入静态列表,适合打印或对外分发
WPS 宏编辑器兼容 Excel VBA 语法,通过 ThisWorkbook.Sheets 遍历即可。优点是运行后生成纯文本,不再依赖函数重算;缺点是需要用户主动授权宏,且 macOS 桌面版默认禁用 VBA(需单独安装 WPS 专业版)。
3. Power Query 法:一键刷新 + 超链接批量生成,适合周期性报告
在「数据-获取数据-自其他源-空白查询」中写入 3 行 M 代码即可抓取工作表元数据。优点是后续新增工作表后,点「刷新全部」即可同步;缺点是首次使用需加载查询编辑器,老旧 Android 平板可能闪退(经验性观察:内存低于 4G 时)。
三步公式法(推荐新手优先尝试)
步骤 1:确认函数可用性
打开任意空白单元格,输入=SHEETNAME(1),若返回“Sheet1”而非 #NAME?,说明当前版本已内置该函数;若报错,请通过「帮助-检查更新」升级到截至当前的最新版本。
步骤 2:纵向溢出输出
在需要生成列表的 A1 单元格输入:
=SHEETNAME(SEQUENCE(SHEETS()))
按 Enter 后,动态数组会自动向下溢出,每行对应一个工作表名称。若希望排除隐藏表,可在外层加 FILTER 判断:
=FILTER(SHEETNAME(SEQUENCE(SHEETS())),ISVISIBLE(SHEETNAME(SEQUENCE(SHEETS()))))
步骤 3:加超链接跳转(可选)
在 B1 输入并向下填充:
=HYPERLINK("#"&A1&"!A1","跳转")
即可点击直达对应工作表 A1 单元格。若工作表名称含空格或特殊符号,WPS 会自动加单引号,无需人工处理。
提示:公式法生成的列表会随工作表增删实时变化,适合「活目录」;若你要把目录复制到邮件或 PDF,请选中后「复制-粘贴为值」固化。
三步 VBA 法(适合打印或分发静态目录)
步骤 1:启用宏编辑器
桌面端:Alt+F11 → 若首次使用,WPS 会提示「是否启用宏功能」,选择「启用」。macOS 需确保已安装「WPS Office 专业版」并在「偏好设置-安全性-允许宏」。
步骤 2:插入模块并写入代码
在左侧 Project 树右击 ThisWorkbook → Insert → Module,粘贴以下 8 行:
Sub ListSheetNames()
Dim i As Integer, sht As Worksheet
With Worksheets.Add(Before:=Sheets(1))
.Name = "目录" & Format(Now, "hhmmss")
For i = 1 To ThisWorkbook.Sheets.Count
.Cells(i, 1).Value = ThisWorkbook.Sheets(i).Name
.Hyperlinks.Add Anchor:=.Cells(i, 2), Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:="跳转"
Next i
.Columns("A:B").AutoFit
End With
End Sub
步骤 3:运行并检查结果
按 F5 或从「宏」列表选中 ListSheetNames → 运行。WPS 会新建一张时间戳目录表,A 列为名称,B 列为超链接。若公司电脑禁用宏,可另存为 *.et 带宏格式并联系 IT 放行。
警告:VBA 写入后不会再自动同步。若后续新增工作表,需重新运行宏;否则目录会缺失。
三步 Power Query 法(适合周期性自动刷新)
步骤 1:进入查询编辑器
桌面端:菜单栏「数据-获取数据-自其他源-空白查询」;Android/iOS:暂不支持 M 代码,请改用公式法。
步骤 2:在高级编辑器输入 M 代码
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], //占位,无需真实表
导航 = Table.FromColumns({Excel.CurrentWorkbook(){[Name="定义名称可省"]}[Content]}),
工作表列表 = Table.FromList(Excel.CurrentWorkbook(){[Kind="Sheet"]}[Name],Splitter.SplitByNothing(),{"工作表名"}),
已添加超链接 = Table.AddColumn(工作表列表, "跳转", each "#'" & [工作表名] & "'!A1")
in
已添加超链接
实际可简化为 2 行:通过 Excel.CurrentWorkbook(){[Kind="Sheet"]}[Name] 抓取工作表元数据,再转成表。
步骤 3:加载到工作表并设置刷新
关闭并加载至「新工作表」→ 右键查询表→「属性」→ 勾选「打开文件时刷新数据」。以后无论增删工作表,只需「数据-全部刷新」即可同步目录。
平台差异与回退方案
| 平台 | 公式法 | VBA 法 | Power Query |
|---|---|---|---|
| Windows 桌面 | ✅ 完全支持 | ✅ 完全支持 | ✅ 完全支持 |
| macOS 桌面 | ✅ 完全支持 | ⚠️ 需专业版 | ✅ 完全支持 |
| Linux 桌面 | ✅ 完全支持 | ✅ 完全支持 | ✅ 完全支持 |
| Android/iOS | ✅ 仅公式 | ❌ 不支持 | ❌ 不支持 |
若移动端遇到函数缺失,可先在桌面端用公式法生成目录,再「另存为云文档」,手机端仅查看或复制值即可。
不适用场景与副作用
- 工作表名称超过 31 字符且含特殊符号 / ? * [ ] 时,公式法仍能抓取,但超链接可能失效,需手动加单引号。
- 若文件需上传到政府信创系统并做 OFD 转换,VBA 宏会被自动剥离,此时应改用公式或 Power Query。
- 经验性观察:当工作表数量>200 且含大量图表,SHEETNAME 动态数组重算会导致文件体积临时增大 15% 左右,建议事后「复制-粘贴为值」。
最佳实践检查表(可打印贴屏)
- 先确认版本:帮助 → 关于 → 检查更新,确保函数库包含 SHEETNAME。
- 若目录需对外分发,优先 VBA 静态化,避免收件人看到 #REF!。
- 若每月新增工作表,用 Power Query 并设置「打开时刷新」,省去人工维护。
- 命名规范:工作表名避免空格开头,防止超链接跳转失败。
- 备份:运行 VBA 前,「文件-历史版本」手动创建一次云端快照,可 5 秒内回滚。
故障排查 3 步法
现象:公式返回 #NAME?
可能原因:版本低于 2025 冬季更新。验证:在空白单元格输入 =SEQUENCE(1),若同样报错则确认版本过旧。处置:升级至截至当前的最新版本。
现象:VBA 运行后无新工作表
可能原因:宏被禁用。验证:查看状态栏是否出现「宏已禁用」提示。处置:文件 → 选项 → 信任中心 → 启用宏,并重新运行。
现象:Power Query 刷新后列表缺失最新表
可能原因:新增表后未保存。验证:观察标题栏是否带「*」未保存标识。处置:Ctrl+S 保存后再刷新,M 引擎仅对已持久化对象生效。
FAQ(结构化数据,利于搜索引擎 FAQ 富卡片)
移动端能否一键提取工作表名称?
Android/iOS 版 WPS 暂不支持 VBA 与 Power Query,但可直接在单元格输入 =SHEETNAME(SEQUENCE(SHEETS())) 实现动态列表,结果可复制为值使用。
公式法会不会因为重算拖慢大文件?
经验性观察:工作表数量超过 200 且含大量图表时,动态数组重算可能让文件临时增大 15% 左右;解决方法是目录生成后「复制-粘贴为值」固化。
政府信创系统禁用宏,如何生成静态目录?
可在 Windows 桌面版先用公式法生成目录,再「复制-选择性粘贴-数值」到新建工作表,随后删除原公式,即可得到不含宏的纯文本目录。
总结与下一步行动
批量提取工作表名称到列表,本质是「把元数据变成数据」。若你追求零维护,公式法最轻;若要给外部客户发只读目录,VBA 静态化最干净;若每月追加新表且需要一键刷新,Power Query 最省心。根据上文的检查表先确认版本与平台限制,5 分钟内即可完成部署。
下一步,不妨把生成的目录配合「数据-大纲-分组」做成折叠式导航,再用「插入-链接-本文档中的位置」做反向跳转,双向目录即可让百人协作文档也能秒级定位。现在就打开 WPS,复制第一段公式,体验三步成表的效率提升吧。