在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. Linux文件3个时间点(access time,modify time,change time)

    在Linux中使用stat命令来查看文件的详细信息. 如图所示,会出现3个类型的时间,分别是Access,Modify,Change. access time:表示最后一次访问(仅仅是访问,没有改动) ...

  2. dustjs

    http://akdubya.github.io/dustjs/ https://github.com/linkedin/dustjs

  3. Nth Digit | leetcode

    Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note: n i ...

  4. webservice 的权限验证

    1. http://blog.csdn.net/jaune161/article/details/25602655 2. http://wcp88888888.iteye.com/blog/13993 ...

  5. 修改.htaccess实现子目录绑定示例分享

    <IfModule mod_rewrite.c>RewriteEngine On  RewriteBase /# 把 www.jb51.net改为你要绑定的域名.# 如果是域名:Rewri ...

  6. HTML5 push

    http://blog.csdn.net/yo548720570/article/details/8599947 http://www.oschina.net/question/82993_63312 ...

  7. 115太酷了,居然出了个TV版客户端

    确实,智能电视代表了未来的方向,是智能家居的最重要客户端,TV也能做很多事情呢!!不要忘了这个市场,想想什么服务在TV上是最需要的? http://pc.115.com/tv.html

  8. Android 图片比较

    Android中图片比较大致的流程如下: 将Drawable对象转化成Bitmap对象.(实际比较的是Bitmap对象,假设为B1和B2) 将B1和B2中的像素取出,分别放在2个数组中.(实际存储的是 ...

  9. Android事件分发详解(三)——ViewGroup的dispatchTouchEvent()源码学习

    package cc.aa; import android.os.Environment; import android.view.MotionEvent; import android.view.V ...

  10. ExecutorService生命周期

    ExecutorService接口继承了Executor接口,定义了一些生命周期的方法 public interface ExecutorService extends Executor { void ...