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

当你必须将多个工作簿合并到一个工作簿时,你遇到过麻烦吗?最让人心烦的就是需要合并的工作簿里有很多张工作表。有人能推荐方法解决这个问题吗?

利用VBA 将多个工作簿合并到一个工作簿中
复杂,高级用户使用

Excel 的专业用户可以使用VBA 将多个工作簿合并到一个主要的工作簿中。你可以按照如下步骤操作:

1. 将需要合并的所有工作簿都 放置在同一个目录下。如图:

2. 打开一个工作簿,其他工作簿将被合并到这个工作簿中。

3. 点击开发工具 >> Visual BasicMicrosoft Visual Basic for applications  窗口将被打开,点击插入 >> 模块,将下面的代码输入模块窗口中:

VBA:将多个工作簿合并到一个工作簿中

1
2
3
4
5
6
7
8
9
10
11
12
Sub GetSheets()
 Path = "C:\Users\dt\Desktop\dt kte\"
 Filename = Dir(Path & "*.xls")
 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

提示:在上面的代码里,你可以将目录路径更换成你自己使用的路径。

4. 然后点击  按钮运行代码,工作簿里的全部工作表(包括空白工作表)都将被合并到主工作簿里。

注意:这个VBA 代码能将整个工作簿合并到主工作簿中,但是不能 针对指定的工作表进行合并。

利用移动或复制功能将多个工作簿合并到一个工作簿中
操作耗时

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

如果你只是Excel 新手,除了复制每张工作表里的内容再粘贴到新工作簿和应用移动或复制功能外,也没有其他选择了。应用移动或复制功能能帮你快速地将一张或多张工作表导出或复制到新工作簿里。

1. 打开所有需要合并的工作簿。

2. 在工作表标签栏上选中一个工作簿里的全部工作表名称。按住Ctrl 键或Shift 键,你可以同时选择多个工作表。右键点击工作表名称,从右键菜单里选择移动或复制

3. 在移动或复制工作表对话框里,在将选定工作表移至工作簿下拉菜单里选择主 工作簿,其他工作簿都将被合并到这个主 工作簿中。然后指定合并工作表的位置。如图:

4.点击确定。选中的工作表都被合并到了主 工作簿里。

5. 重复2-4步,将其他工作簿移到主要的工作簿里。这样,所有打开的工作簿中 的工作表都被合并到了一个工作簿里。如图:

http://www.extendoffice.com/documents/excel/zh-cn-excel/2805-combine-multiple-workbooks.html

实践证明,下面的代码也很有效:(http://www.excelperfect.com/index.php/2009/05/23/mergesomeworkbooks/)

Sub CombineWorkbooks()
Dim strFileName As String
Dim wb As Workbook
Dim ws As Object
 
'包含工作簿的文件夹,可根据实际修改
Const strFileDir As String = "D:\示例\数据记录\"
 
Application.ScreenUpdating = False
 
Set wb = Workbooks.Add(xlWorksheet)
strFileName = Dir(strFileDir & "*.xls*")
 
Do While strFileName <> vbNullString
Dim wbOrig As Workbook
Set wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)
strFileName = Left(Left(strFileName, Len(strFileName) - 4), 29)
 
For Each ws In wbOrig.Sheets
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
If wbOrig.Sheets.Count > 1 Then
wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.Index
Else
wb.Sheets(wb.Sheets.Count).Name = strFileName
End If
Next
 
wbOrig.Close SaveChanges:=False
 
strFileName = Dir
 
Loop
 
Application.DisplayAlerts = False
wb.Sheets(1).Delete
Application.DisplayAlerts = True
 
Application.ScreenUpdating = True
 
Set wb = Nothing
 
End Sub

在Excel里如何将多个工作簿合并到一个工作簿中的更多相关文章

  1. EXCEL 如何将多个工作表或工作簿合并到一个工作表

    在使用Excel 时,我们经常需要将多个工作表或工作簿合并到一个工作表中,这样我们就能快速地对数据进行分析和统计.对于一般用户而言,除了复制每个工作表后再粘贴,没有其他什么方法了.如果只是合并少数几个 ...

  2. 【Office】【Excel】将多个工作薄合为一个工作薄

    前提:工作薄首行不能有合并的单元格 准备工作:将要合并的工作簿放在一个文件夹里面,文件夹中不能有乱七八糟的东西,只能有你要合并的工作薄 操作步骤:在此文件夹下创建Excel表格并打开,按下alt+F1 ...

  3. 【Office】【Excel】将多个工作表合为一个工作表

    在工作表中按下alt+F11打开vba编辑窗口,在菜单栏中选择[插入]=>[模板],将下面的代码粘贴过去,然后运行即可 点击查看代码 Sub 合并当前工作簿下的所有工作表() On Error ...

  4. 合并多个工作薄workbooks到一个工作薄workbook

    微软示例教程 微软示例教程 Sub MergeAllWorkbooks() Dim SummarySheet As Worksheet Dim FolderPath As String Dim NRo ...

  5. Excel怎么把两个单元格中的文字合并到一个单元格中

    使用&符号,可以将字符串和单元格中的内容拼接起来

  6. 工作簿合并(Excel代码集团)

    同一文件夹内N个工作簿 ,每个工作簿里N个工作表,最终合并到一个工作表里的代码. 假设每个表格结构相同,第一行为标题,第二行为表头,表头内容固定,行数不固定,列固定14,工作表数量不固定,工作簿数量不 ...

  7. Python将多个excel表格合并为一个表格

    Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除 ...

  8. Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格

    Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格 在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 V ...

  9. 如何在同一个Excel里,对两个很相似的工作簿比对出不同之处

    如何在同一个Excel里,对两个很相似的工作簿比对出不同之处

随机推荐

  1. .net线程同步

    大家都晓得.NET中线程同步有以下几种方式: 临界区(Critical Section).互斥量(Mutex).信号量(Semaphore).事件(Event) 1.临界区:通过对多线程的串行化来访问 ...

  2. HDU 1394 Minimum Inversion Number 线段树

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=1394 没看到多组输入,WA了一万次...... 其实很简单,有人暴力过得,我感觉归并排序.二叉排序树求逆 ...

  3. Hibernate过程小计

    对实体 "XXX" 的引用必须以 ';' 分隔符结尾(需要对分号进行编码) <property name="connection.url">jdbc ...

  4. 4069: [Apio2015]巴厘岛的雕塑

    Description 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有 N 座雕塑,为方便起见,我们把这些雕塑从 1 到 N 连续地进行标号,其中第 i 座雕塑的年龄 ...

  5. canvas仿黑客帝国的字符下落

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  6. 使用libsvm对MNIST数据集进行实验

    使用libsvm对MNIST数据集进行实验 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出话来. 1. libsvm介绍 虽然原理要求很高的数学知识等,但是libs ...

  7. 这个HEAD FIRST系统不错哟

    以前看过JAVA,现 在是PYTHON,接下来还下载了SQL,HTML系统看看..

  8. 李洪强iOS开发Swift篇---12_NSThread线程相关简单说明

    李洪强iOS开发Swift篇---12_NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThre ...

  9. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  10. 用MATLAB画函数的曲线

    用MATLAB画函数曲线 2013年8月11日 命令funtool 这是单变量函数分析的交互界面,比较方便,特别适用于y=f(x)型,即y与x分开的函数形式.见下图