You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Power Query合并Excel多工作表不同非表格数据区域为单表

Excel多工作表零散数据区域按行合并操作方案

高效自动处理方案(VBA宏,适配21个工作表的批量场景)

无需手动逐个复制,运行一次代码即可自动完成合并:

  • 打开目标Excel文件,按Alt + F11调出VBA编辑器
  • 在左侧「工程-VBAProject」面板右键点击你的工作簿名称,依次选择「插入」-「模块」
  • 将下方代码粘贴到弹出的空白编辑窗口:
Sub 合并所有数据区域()
    Dim ws As Worksheet, sumWs As Worksheet
    Dim lastRow As Long, rng As Range
    ' 设定汇总工作表,这里默认是TOTAL,可根据你的实际表名修改
    Set sumWs = ThisWorkbook.Worksheets("TOTAL")
    ' 设定粘贴起始行,31行之后就是第32行,可按需修改
    lastRow = 32
    
    ' 遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        ' 跳过汇总表本身,不需要处理
        If ws.Name <> sumWs.Name Then
            ' 遍历当前工作表的所有已使用常量区域
            For Each rng In ws.UsedRange.SpecialCells(xlCellTypeConstants).Areas
                ' 复制数据到汇总表
                rng.Copy sumWs.Cells(lastRow, 1)
                ' 更新下一次粘贴的起始行
                lastRow = lastRow + rng.Rows.Count
            Next rng
        End If
    Next ws
    Application.CutCopyMode = False
    MsgBox "合并完成!共汇总到" & lastRow - 32 & "行数据"
End Sub
  • 按F5运行代码,等待弹出完成提示即可

注意:如果你的数据里包含公式,可把代码里的rng.Copy sumWs.Cells(lastRow, 1)替换为下面两行,实现仅粘贴值,避免格式和公式错乱:

rng.Copy
sumWs.Cells(lastRow, 1).PasteSpecial xlPasteValues

手动操作方案(适合临时小批量处理)

如果不想启用宏,也可以手动操作完成:

  • 按你需要的顺序逐个打开对应工作表,从上到下依次选中每个独立的数据区域,按Ctrl + C复制
  • 切换到TOTAL汇总表,定位到当前已有数据的最后一行的下一个空行,按Ctrl + V粘贴即可
  • 所有区域粘贴完成后统一调整格式即可

内容的提问来源于stack exchange,提问作者Mishko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:42:01