推荐使用Power Query合并多个结构一致的工作表,因其可自动识别并堆叠数据、保留列结构、支持一键刷新;其次可选VSTACK函数(Excel 365/2021+)实现动态实时拼接,或VBA宏批量自动化合并,再辅以自定义按钮提升操作便捷性。

如果您需要将同一工作簿中多个结构一致的工作表整合为一张连续数据表,则可能是由于手动复制粘贴效率低下、易出错或需频繁更新。以下是解决此问题的步骤:
一、使用Power Query合并多个工作表
Power Query可自动识别并堆叠当前工作簿内所有指定工作表的数据,保留原始列结构,支持一键刷新,适用于列标题完全一致、数据格式统一的场景。
1、点击【数据】选项卡,选择【获取数据】→【从工作簿】。
2、浏览并选中当前Excel文件,点击【导入】。
3、在导航器窗口中,勾选【合并并加载到…】,点击【转换数据】进入Power Query编辑器。
4、在查询列表中按住Ctrl键多选所有待合并的工作表名称,右键选择【追加查询】→【将查询追加为新查询】。
5、在新生成的合并查询中,删除冗余的“源”列(如有),确认字段类型无误后,点击【关闭并上载】。
二、使用VSTACK函数动态堆叠(Excel 365 / Excel 2021及以上)
VSTACK是原生数组函数,无需加载外部工具或进入编辑器,直接在目标单元格输入公式即可垂直拼接多个区域,结果随源数据实时更新,适合轻量级、结构严格一致的多表堆叠。
1、确保各工作表数据区域结构相同(如均从A1开始,首行为标题,无空行)。
2、在新建汇总表的A1单元格输入公式:=VSTACK(Sheet1!A1:D100,Sheet2!A1:D100,Sheet3!A1:D100),其中Sheet1、Sheet2等替换为实际工作表名,A1:D100替换为各表实际数据范围。
3、若需自动适配动态范围,可嵌套TOCOL与FILTER组合,例如:=VSTACK(TOCOL(Sheet1!A2:D100,1),TOCOL(Sheet2!A2:D100,1)),跳过首行标题并忽略空白。
4、按Enter完成输入,结果自动溢出填充整张汇总表。
三、借助VBA宏一键合并同结构工作表
VBA脚本可全自动遍历当前工作簿所有工作表(可设定排除汇总表自身),逐表复制UsedRange数据至指定目标工作表,跳过标题行,执行速度快,适合高频重复操作且不依赖版本功能。
1、按Alt + F11打开VBA编辑器,点击【插入】→【模块】。
2、粘贴以下代码(假设汇总表名为“汇总”,且各源表首行为标题,数据从第2行开始):
Sub 合并多表()
Dim ws As Worksheet, destWs As Worksheet, lastRow As Long
Set destWs = ThisWorkbook.Sheets("汇总")
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
For Each ws In ThisWorkbook.Worksheets
If ws.Name "汇总" Then
If ws.UsedRange.Rows.Count > 1 Then
ws.UsedRange.Offset(1).Copy destWs.Cells(lastRow + 1, 1)
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
End If
End If
Next ws
End Sub
3、返回Excel界面,按Alt + F8调出宏列表,选中“合并多表”,点击【运行】。
四、部署自定义合并按钮插件(启用宏工作簿)
通过绑定VBA宏至表单控件按钮,实现“一键触发”式操作,提升交互效率,使非技术用户也能快速执行合并任务,无需打开VBA编辑器或记忆快捷键。
1、确保已插入上述VBA宏代码,并保存为“Excel启用宏的工作簿(*.xlsm)”。
2、在【开发工具】选项卡中,点击【插入】→【按钮(窗体控件)】,在工作表中拖拽绘制按钮。
3、弹出【指定宏】对话框,选中“合并多表”,点击【确定】。
4、右键按钮→【编辑文字】,将其标题改为“批量合并工作表”。
5、点击按钮即可立即执行合并,结果自动写入“汇总”表。








