功能定位:为什么“汇总多工作簿”仍是高频痛点
“WPS表格汇总多工作簿”被反复搜索,并非缺少方案,而是官方把Power Query、数据透视表多重合并、VBA三条通路拆在了不同入口,且“是否保留文件名”“是否追加新文件”这类关键开关默认隐藏。本文以 2026 年 4 月推送的 WPS Office 13.8.1 为基准,把三条通路重新梳成“一键流”“可扩展流”“高自由度流”,并给出回退与排错步骤,省得你在“数据”“工具”“开发工具”三个 Tab 之间来回翻找。
通路 1:Power Query 一键合并(适合 100 文件以内、字段一致)
桌面端最短路径
Windows/macOS 通用入口:数据 → 获取数据 → 自文件夹 → 选中含 Excel 的文件夹 → 组合 → 合并并加载至… → 勾选“将文件名添加为列”。
为什么推荐先用它
Power Query 在 WPS 里被命名为“获取数据”,底层引擎与微软同源,可自动识别 .xls/.xlsx/.et 三种后缀;点击“合并并加载”后,会在总表右侧新增一列 Source.Name,直接保留原始文件名,省去后续 VLOOKUP。经验性观察:100 个以内 1 MB 文件,合并耗时约 30–60 秒,风扇无明显起飞。
边界与回退
若字段列顺序不一致,PQ 会按“列名”对齐,缺失列填 null;可在“转换样本”里手动拖列,或放弃 PQ 转用 VBA。回退办法:在查询设置窗格右键 → 删除查询,总表自动撤销,不会污染原文件。
通路 2:VBA 循环抓数(适合字段差异大、需按行追加文件名)
启用开发工具
文件 → 选项 → 自定义功能区 → 勾选“开发工具”。若公司组策略禁用宏,可让 IT 把 WPS 加入“国密验证宏白名单”,路径在信任中心 → 宏设置 → 启用国密验证宏。
最小可运行脚本
Sub MergeBooks()
Dim f As String, wb As Workbook, sh As Worksheet, tail As Long
f = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While f <> ""
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & f, ReadOnly:=True)
Set sh = wb.Sheets(1)
tail = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
sh.UsedRange.Copy ThisWorkbook.Sheets(1).Cells(tail, 1)
ThisWorkbook.Sheets(1).Cells(tail, sh.UsedRange.Columns.Count + 1).Resize(sh.UsedRange.Rows.Count, 1).Value = f
wb.Close False
f = Dir()
Loop
End Sub
做法解读
用 Dir 函数顺序捞文件,每打开一次就把已用区域复制到总表尾部,并在最右列写文件名,确保后续可筛选。经验性观察:300 个 2 MB 文件,全程约 3–4 分钟,CPU 占用 30 % 左右;若文件增至 1000 +,建议加 DoEvents 防假死。
何时不该用 VBA
如果电脑被组策略禁止“国密验证宏”,或你需要在移动版 WPS上跑,则 VBA 无法启用,此时只能回到 PQ 或手动复制。
通路 3:手动“多重合并计算区域”(适合一次性、无新增)
入口与限制
插入 → 数据透视表 → 使用多重合并计算区域 → 选定区域 → 添加。此法不会保留文件名,且每次新增文件需重新走一遍向导,适合领导临时要看汇总、日后不再更新的场景。
小技巧:把文件名写进页字段
在“选定区域”弹窗里,把每个工作簿的区域手工命名为“北京_2026Q1”“上海_2026Q1”等,页字段会显示自定义名称,变相实现“来源可追溯”。文件多时不建议,容易点错。
平台差异与版本前提
Windows 与 macOS 在 13.8.1 均内置 PQ;Linux 版(统信 UOS)目前仅提供 VBA 与多重合并,PQ 入口被隐藏,需等后续更新。移动端(Android/iOS/鸿蒙)无宏无 PQ,只能“上传至云 → 电脑端合并 → 回传”,步骤如下:打开 WPS App → 长按多选 → 上传至“团队文件夹” → 电脑端同步后执行本文脚本 → 保存回云 → 手机刷新即可查看总表。
常见故障排查表
| 现象 | 最可能原因 | 验证动作 | 处置 |
|---|---|---|---|
| PQ 报“无法找到任何表格列” | 文件夹内混入了 .csv 或隐藏临时文件 | 资源管理器开“显示隐藏”并排序 | 清理 ~$ 开头文件后刷新查询 |
| VBA 运行中断,提示“下标越界” | 某文件第一行为空,UsedRange 错位 | Debug.Print sh.UsedRange.Address | 加判断 If sh.UsedRange.Rows.Count =1 Then 跳过 |
| 合并后时间列变 5 位数字 | PQ 默认把日期当数字 | 在转换步骤点“使用区域格式” | 把列类型改成 Date/Time |
是否值得?决策矩阵
文件数 ≤100、字段一致、后续还会新增 → 首选 PQ,一键刷新即可。
文件数 100–1000、列名差异大、需要自定义清洗 → 用 VBA,跑一次后把宏按钮放快捷栏,日后点一下即可。
领导临时看数、只用一次 → 多重合并最快,3 分钟出透视表,别纠结文件名。
Linux 或移动端 → 只能走云中转,或等官方后续移植 PQ。
最佳实践 6 条速查表
- 统一把待合并文件放单独文件夹,避免混入其他格式。
- 先在副本里跑脚本,确认无误再覆盖正式总表。
- 若用 PQ,把查询属性里“快速加载”关掉,可降低内存峰值。
- 文件名含空格不影响合并,但建议用英文下划线,防止宏里 Dir 解析异常。
- 每月新增文件后,PQ 用户点“刷新”即可;VBA 用户把新文件扔进同目录再点按钮。
- 总表若需上传 ERP,先另存为 .xlsx 并删除查询链接,防止外部数据源被 ERP 拒收。
FAQ:你必须知道的 5 个细节
WPS 个人版免费能用 Power Query 吗?
可以,PQ 属于基础功能,不插卡也不限次数;但 AI 数据洞察里的 Python 预测模块才需要登录领 Token。
合并后提示“隐私级别”阻止刷新,怎么关?
文件 → 选项 → 数据 → 隐私 → 取消“为合并数据配置隐私级别”勾选,重启 WPS 生效。
macOS 下 VBA 为何找不到 Workbooks.Open?
macOS 版 VBA 目前仅支持单工作簿操作,跨文件需用 AppleScript 辅助,建议改用 PQ。
文件名太长会导致合并失败吗?
Windows 256 字符上限包含路径,超出时 Dir 会返回空;把文件夹路径缩短即可,无需改文件名本身。
能否只合并指定工作表名?
PQ 可在“筛选样本”里加筛选器 [Item] = "Sheet1";VBA 把 sh.Name = "Sheet1" 作为判断条件即可跳过其他表。
收尾:下一步行动建议
读完本文,你已知道 WPS 表格汇总多工作簿的三种活法:PQ 最快、VBA 最灵活、多重合并最省事。现在就打开资源管理器,把散落各处的日报拖进一个空白文件夹,先跑一遍 Power Query 体验“刷新即更新”的快感;遇到列名乱战再换成 VBA 模板,把宏按钮钉在快捷访问栏,日后哪怕老板再甩你 500 个文件,也只需点一次按钮。合并完成后,别忘用“另存为”把查询链接断掉,再上传到金山云,手机端就能直接查看汇总结果——真正做到一次搭建,终身偷懒。
