数据合并

怎么在WPS表格中将多个工作簿数据汇总到总表?

WPS官方团队
批量合并保留文件名Power QueryVBA数据汇总
WPS表格如何合并多个工作簿, 怎么保留源文件名, WPS是否支持Power Query, 批量合并后文件名丢失怎么办, VBA合并工作簿步骤, 职场报表自动化合并, WPS表格数据汇总技巧, 多文件合并最佳实践

功能定位:为什么“汇总多工作簿”仍是高频痛点

“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 条速查表

  1. 统一把待合并文件放单独文件夹,避免混入其他格式。
  2. 先在副本里跑脚本,确认无误再覆盖正式总表。
  3. 若用 PQ,把查询属性里“快速加载”关掉,可降低内存峰值。
  4. 文件名含空格不影响合并,但建议用英文下划线,防止宏里 Dir 解析异常。
  5. 每月新增文件后,PQ 用户点“刷新”即可;VBA 用户把新文件扔进同目录再点按钮。
  6. 总表若需上传 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 个文件,也只需点一次按钮。合并完成后,别忘用“另存为”把查询链接断掉,再上传到金山云,手机端就能直接查看汇总结果——真正做到一次搭建,终身偷懒

相关关键词

WPS表格如何合并多个工作簿怎么保留源文件名WPS是否支持Power Query批量合并后文件名丢失怎么办VBA合并工作簿步骤职场报表自动化合并WPS表格数据汇总技巧多文件合并最佳实践