跳至主要内容

如何在 Excel 中将多个工作簿合并到一个主工作簿中?

Author: Tech Support Last Modified: 2025-05-07

当您需要将多个工作簿合并到 Excel 的主工作簿时,是否曾经遇到困难?最糟糕的是,您需要合并的工作簿包含多个工作表。那么如何将多个工作簿中的指定工作表合并到一个工作簿中呢?本教程将逐步演示几种有用的方法,帮助您一步步解决问题。


使用“移动或复制”功能将多个工作簿合并到一个工作簿中

如果只有少数几个工作簿需要合并,您可以使用“移动或复制”命令手动将原始工作簿中的工作表移动或复制到主工作簿中。

1. 打开要合并到主工作簿中的工作簿。

2. 在原始工作簿中选择要移动或复制到主工作簿中的工作表。

注意事项:

1). 按住 Ctrl 键并逐个点击工作表标签,可以选择多个不相邻的工作表。

2). 若要选择多个相邻的工作表,请点击第一个工作表标签,按住 Shift 键,然后点击最后一个工作表标签以选择所有工作表。

3). 可以右键单击任意工作表标签,在弹出的上下文菜单中点击 全选工作表 以同时选择工作簿中的所有工作表。

3. 选择所需的工作表后,右键单击工作表标签,然后从上下文菜单中点击 移动或复制。请参见截图:

Move or Copy option on the context menu

4. 接着会弹出“移动或复制”对话框,在“目标工作簿”下拉菜单中,选择要将工作表移动或复制到的主工作簿。在“位置”框中选择 移动到底部,勾选 创建副本 复选框,最后点击 确定 按钮。

Move or Copy dialog

然后您可以看到两个工作簿中的工作表已合并为一个。请重复上述步骤,将其他工作簿中的工作表移动到主工作簿中。

Worksheets from two workbooks are in one workbook now


使用 VBA 将多个工作簿或指定工作表合并到主工作簿中

如果有多个工作簿需要合并为一个,可以应用以下 VBA 代码快速实现。请按照以下步骤操作。

1. 将所有要合并的工作簿放在同一目录下。

2. 启动一个 Excel 文件(此工作簿将成为主工作簿)。

3. 按 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。在 Microsoft Visual Basic for Applications 窗口中,点击 插入 > 模块,然后将以下 VBA 代码复制到模块窗口中。

VBA 代码 1:合并多个 Excel 工作簿为一个

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub

注意事项:

1. 上述 VBA 代码将在合并后保留原始工作簿的工作表名称。

2. 如果您希望在合并后区分主工作簿中的工作表来自哪里,请应用以下 VBA 代码 2。

3. 如果您只想将工作簿中的指定工作表合并到主工作簿中,以下 VBA 代码 3 可以提供帮助。

在 VBA 代码中,“C:\Users\DT168\Desktop\KTE\” 是文件夹路径。在 VBA 代码 3 中,“Sheet1,Sheet3” 是您要合并到主工作簿中的指定工作表。您可以根据需要进行更改。

VBA 代码 2:合并工作簿为一个(每个工作表将以其原始文件名作为前缀命名):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

VBA 代码 3:将工作簿中的指定工作表合并到主工作簿中:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. 按 F5 键运行代码。然后该特定文件夹中所有工作簿的工作表或指定工作表将一次性合并到主工作簿中。


轻松将多个工作簿或指定工作表合并到一个工作簿中

幸运的是,Kutools for Excel合并工作簿工具让将多个工作簿合并为一个变得更加容易。让我们看看如何使用此功能来合并多个工作簿。

在应用 Kutools for Excel之前,请先下载并安装它

1. 创建一个新的工作簿并点击 Kutools Plus > 合并。然后会弹出一个对话框,提醒您所有要合并的工作簿都应保存,并且该功能无法应用于受保护的工作簿,请点击 确定 按钮。

Combine button on the Kutools tab on the ribbon

2. 在“ 合并工作表”向导中,选择 复制多个工作簿中的工作表到一个工作簿中 选项,然后点击 下一步 按钮。请参见截图:

Combine Worksheets wizard

3. 在“ 合并工作表 - 第 2 步,共 3 步”对话框中,点击 添加 > 文件文件夹 以添加要合并的 Excel 文件。添加完 Excel 文件后,点击 完成 按钮并选择一个文件夹保存主工作簿。请参见截图:

Combine Worksheets - Step 2 of 3

现在,所有工作簿都已合并为一个。

与上述两种方法相比,Kutools for Excel 具有以下优势:

  • 1) 所有工作簿和工作表都在对话框中列出;
  • 2) 对于不想合并的工作表,只需取消选中即可;
  • 3) 空白工作表会自动排除;
  • 4) 合并后,原始文件名将作为前缀添加到工作表名称中;
  • 有关此功能的更多内容,请访问这里

  如果您想免费试用(30天)此工具,请点击下载,然后按照上述步骤进行操作。


最佳办公效率工具

🤖 Kutools AI 助手:基于智能执行生成代码创建自定义公式分析数据并生成图表调用 Kutools 函数等功能,彻底改变数据分析方式…
热门功能查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ...
高级 LOOKUP多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 ....
高级下拉列表快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 ....
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ...
精选功能网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)...
排名前 15 的工具集12 种文本 工具添加文本删除特定字符等) | 50 多 种图表 类型甘特图等) | 40 多种实用 公式基于生日计算年龄等) | 19 种插入 工具插入二维码根据路径插入图片等) | 12 种转换 工具小写金额转大写汇率转换等) | 7 种合并与分割 工具高级合并行分割单元格等) | 还有更多...

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!