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

Excel如何将多个工作表的表格合并为可自动更新的主表

多工作表动态合并表格实现方法

分三种适配不同版本的方案,按需选择即可:

方案1:VSTACK函数(Excel 365/2021、WPS 2021及以上版本适用)

这是最简单的无代码方案:

  • 先把Sheet1、Sheet2的数据源转为结构化表:选中对应表的所有数据(含表头),按Ctrl+T,勾选「表包含标题」后确认,两个表都按同样操作设置。
  • 打开Sheet3,在A1单元格输入公式:=VSTACK(Table1,Table2) (如果改了结构化表的名称,把Table1、Table2替换成你自己的表名即可)
  • 按下回车后公式会自动溢出所有合并内容,后续你在Sheet1、Sheet2的结构化表里新增行时,结构化表会自动扩容,Sheet3的汇总内容会实时同步更新。

如果不想用结构化表,也可以直接用整列引用的公式,效果一致:
=VSTACK(Sheet1!A1,FILTER(Sheet1!A2:A,Sheet1!A2:A<>""),FILTER(Sheet2!A2:A,Sheet2!A2:A<>""))

方案2:Power Query(Excel 2016及以上、所有WPS版本适用)

没有VSTACK函数的话选这个方案,不需要写代码:

  1. 选中Sheet1的数据源,点击「数据」选项卡-「从表格/区域」,勾选「我的表格有标题」,进入Power Query编辑器后直接关闭上载,将该查询命名为Sheet1数据源
  2. 按同样的操作把Sheet2的数据也导入Power Query,命名为Sheet2数据源
  3. 在Power Query编辑器里点击「主页」-「追加查询」,选择将两个查询合并为新查询
  4. 点击「关闭并上载」,选择上载到Sheet3的A1单元格即可
    后续需要更新时右键点击Sheet3的汇总表,选择「刷新」即可同步,也可以设置自动刷新:右键汇总表-「表格」-「外部数据属性」,勾选「打开文件时刷新数据」。

方案3:VBA宏(全版本适用,支持实时自动更新)

需要完全无感知的实时更新的话用这个方案:

  1. 按Alt+F11打开VBA编辑器,双击左侧项目栏里的ThisWorkbook
  2. 粘贴如下代码:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name = "Sheet1" Or Sh.Name = "Sheet2" Then
        Dim ws3 As Worksheet
        Set ws3 = ThisWorkbook.Worksheets("Sheet3")
        ws3.Cells.Clear
        ' 复制Sheet1全部内容
        ThisWorkbook.Worksheets("Sheet1").UsedRange.Copy ws3.Range("A1")
        ' 复制Sheet2内容(跳过表头避免重复)
        Dim lastRow As Long
        lastRow = ws3.Cells(ws3.Rows.Count, "A").End(xlUp).Row + 1
        ThisWorkbook.Worksheets("Sheet2").UsedRange.Offset(1, 0).Copy ws3.Range("A" & lastRow)
    End If
End Sub
  1. 关闭编辑器,将文件保存为.xlsm(启用宏的工作簿)格式即可,后续修改Sheet1或Sheet2的内容时,Sheet3会自动同步更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:45:03