可采用四种方法合并Excel多工作表:一、Power Query自动堆叠;二、VBA宏一键遍历粘贴;三、INDIRECT+名称管理器动态引用;四、Kutools插件图形化操作。

如果您需要将Excel工作簿中的多个工作表(Sheet)合并为一个统一的数据表,可以采用多种技术手段实现。以下是几种实用的批量合并方法:
一、使用Power Query合并多个Sheet
Power Query是Excel内置的数据整合工具,适用于结构相似的多个Sheet,能自动识别并堆叠数据,支持刷新更新。该方法无需编写代码,适合中等数据量和常规业务场景。
1、在Excel中打开目标工作簿,点击【数据】选项卡,选择【获取数据】→【从其他源】→【从工作簿】。
2、浏览并选中当前工作簿文件,点击【导入】,在导航器窗口中勾选【合并并加载到…】选项。
3、在弹出的“合并”对话框中,选择【所有工作表】作为数据源,确认各Sheet表头一致,点击【确定】。
4、Power Query编辑器自动加载并堆叠所有Sheet数据,检查无误后点击【关闭并上载】。
二、使用VBA宏代码一键合并
VBA脚本可全自动遍历当前工作簿内所有Sheet(除目标汇总表外),按列对齐粘贴数据,适合固定格式且需高频重复操作的用户。
1、按Alt + F11打开VBA编辑器,右键【ThisWorkbook】→【插入】→【模块】。
2、粘贴以下代码:Sub MergeSheets() Dim ws As Worksheet, destWs As Worksheet, lastRow As Long Set destWs = ThisWorkbook.Sheets.Add(destWs.Name = "汇总") For Each ws In ThisWorkbook.Sheets If ws.Name destWs.Name Then lastRow = destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Row ws.UsedRange.Offset(1, 0).Copy destWs.Cells(lastRow + 1, 1) End If Next ws End Sub
3、返回Excel界面,按Alt + F8调出宏列表,选中MergeSheets并点击【运行】。
三、通过公式+名称管理器构建动态合并表
该方法利用INDIRECT函数配合定义名称,实现非实时但可手动触发更新的跨Sheet引用,适用于数据量小、需保留原始Sheet独立性的场景。
1、在空白Sheet中选中A1单元格,按Ctrl + F3打开名称管理器,点击【新建】。
2、在“名称”栏输入MergedData,在“引用位置”中输入:=EVALUATE("{"&TEXTJOIN(";",TRUE,IF(SheetNames"汇总",SUBSTITUTE(INDIRECT(SheetNames&"!A1:A1000"),"","")))&"}")(需提前在名称管理器中定义SheetNames为各Sheet名称组成的数组)。
3、在A1单元格输入公式:=INDEX(MergedData,ROW(A1),COLUMN(A1)),向下向右拖拽填充至覆盖全部预期数据范围。
四、借助第三方插件Kutools快速合并
Kutools for Excel提供图形化“合并工作表”功能,支持字段映射、去重、添加源Sheet标识等增强特性,适合不熟悉代码又追求效率的办公人员。
1、安装Kutools插件后,在Excel中点击【Kutools】选项卡,选择【工作表】→【合并工作表】。
2、在向导第一步中勾选需合并的所有Sheet,点击【下一步】。
3、第二步中设置匹配列(如标题行完全一致则选【使用第一行作为标题】),勾选【添加源工作表名称为新列】以区分来源。
4、第三步选择合并结果存放位置(新工作表或现有工作表),点击【完成】立即生成合并表。











