作者:提姆葉yezhongli
链接:https://www.zhihu.com/question/298117231/answer/1240632641
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

关于表格合并,一般会有3种情况:
(p.s:请注意工作簿跟工作表的区别)

  • 将一个 Excel 工作簿中的多个工作表合并成一个工作表
  • 将多个 Excel 工作簿合并成一个工作簿
  • 将多个 Excel 工作簿的工作表合并成一个工作表
    下面分别根据3种情况进行详细的步骤说明,请读者根据自己的需要取用:

一、将一个 Excel 工作簿中的多个工作表合并成一个工作表

1、新建一个Excel工作薄,工作簿名称任你定义
。2、打开此工作薄,将其中一个Sheet重命名为"汇总"。
3、在其下任一个工作表标签上点击右键,选择“查看代码”。
4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 合并工作簿内的多个Sheet到同一个Sheet()
Dim i, j As Integer 'i是数据源表的最后一行,j是目标表(数据表)的最后一行
Dim sht As WorksheetApplication.ScreenUpdating = False '关闭屏幕刷新
'先要删除所有数据
Sheets("汇总").Range("a1:z65536").ClearContents'复制数据
For Each sht In Sheets
If sht.Name <> "汇总" Then
i = sht.Range("d65536").End(xlUp).Row
j = Sheets("汇总").Range("d65536").End(xlUp).Row
sht.Range("a1:z" & i).Copy Sheets("汇总").Range("a" & j + 1)
End If
Next
MsgBox "执行完毕!"
Application.ScreenUpdating = True '打开屏幕刷新
End Sub

5、关闭VBA编辑窗口。
6、在excel中,工具—宏---宏,选“合并工作簿的各个sheet到同一个sheet”,然后“执行”。
7、等待…ok!

二、将多个 Excel 工作簿合并成一个工作簿

1、新建一个工作薄,将其命名为你合并后的名字。
2、打开此工作薄。
3、在其下任一个工作表标签上点击右键,选择“查看代码”。
4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 工作薄间工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls*),*.xls*", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Suberrhandler:
MsgBox Err.Description
End Sub

5 关闭VBA编辑窗口。
6、在excel中,工具—宏---宏,选“工作薄间工作表合并”,然后“执行”。
7、在打开的对话窗口中,选择你要合并的300个工作薄。
8、等待…ok!

三、将多个 Excel 工作簿的工作表合并成一个工作表

1、新建一个Excel工作薄,工作簿名称任你定义。
2、打开此工作薄,将其中一个Sheet重命名为"汇总"。
3、在其下任一个工作表标签上点击右键,选择“查看代码”。
4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 多文件合并能够自由选择文件夹()
Dim arr()
Dim wb As Workbook
Dim sht As Worksheet
arr = Application.GetOpenFilename("Excel文件,*.xls*", 2, , , True)Application.ScreenUpdating = False '关闭屏幕刷新If arr(1) <> "False" ThenFor i = LBound(arr) To UBound(arr)
Set wb = Workbooks.Open(arr(i))
For Each sht In wb.Sheets'以下4行是壳内的命令,用于复制打开的工作簿
If InStr(sht.Name, "费用") > 0 Then
irow = sht.Range("A65536").End(xlUp).Row
irow1 = ThisWorkbook.Sheets("汇总").Range("A65536").End(xlUp).Row + 1
sht.Range("a1:z" & irow).Copy ThisWorkbook.Sheets("汇总").Range("a" & irow1)
wb.Close False '关闭工作簿并且不保存
End If
Next
Next
End IfMsgBox "执行完毕!"
Application.ScreenUpdating = True '打开屏幕刷新End Sub

5、指定要合并的Sheet。对“If InStr(sht.Name, “费用”) > 0 Then”这段代码中的"费用"修改,比如修改成"经销商",则包含“经销商”几个文字的都会纳入合并
6、关闭VBA编辑窗口。
7、在excel中,工具—宏---宏,选“多文件合并能够自由选择文件夹”,然后“执行”。
8、在打开的对话窗口中,选择你要合并的几个工作薄文件。
9、等待。。。。ok!

VB合并excel表格(工作表和工作簿)相关推荐

  1. Excel表格无法重命名工作表

    问题描述: Excel表格无法重命名工作表 原因分析: Excel表受保护,无法修改 详细步骤: step1:审阅>保护工作簿 step2:输入密码 step3:即可正常修改工作表 step4: ...

  2. excel 按数据拆分 xlam_Excel表格把数据按类别快速拆分到不同工作表或工作簿

    Excel表格中数据的拆分和汇总是我们经常会遇到的问题,之前写过一篇利用VBA代码汇总多个工作簿的数据(文章最后有链接,有需要的朋友可以看一下).有时并不是所有的数据都能共享,这时就需要把数据按类别拆 ...

  3. 在Excel表格中如何调整工作表显示比例

    在Excel表格中如何调整工作表显示比例 目录 在Excel表格中如何调整工作表显示比例 1.在"视图"选项卡中找到"显示比例"

  4. Excel 多个工作表或工作簿一键轻松合并

    VBA 宏小工具,能快速合并多个工作表或者工作簿的数据,数据合并时支持复制数据格式,可指定是否复制表头,可指定复制的起始行,也可显示数据来源那个表格或工作簿,基本上没有复制行数的限制.要求待合并的工作 ...

  5. 如何通过VB合并Excel单元格以及设置Excel行高?VB创建Excel表格,合并单元格,生成图形等操作

    如何通过VB合并Excel单元格以及设置Excel行高? 例如:我想把第一列的第4,5,6,7行合并...我在怎样让合并单元格里的字居中,怎样改变字体. 请不吝赐教... ============== ...

  6. powerbuilder中实现多线程同步查询_Power Query中的“追加查询”可以实现合并多个工作表和工作簿...

    文 /  雷哥   编辑  / 小鱼儿今天雷哥主要跟大家讲解下PQ中的追加查询.通过讲解合并工作表和工作簿,来实现深入理解PQ追加查询.01 PQ追加查询合并工作表 案例老板给我们发过来一个Excel ...

  7. Excel·VBA按列拆分工作表、工作簿

    改进<将excel按照某一列拆分成多个文件>,使代码更具通用性,可以实现将工作表拆分为工作表或工作簿 对Excel表格数据按照某列的值,将工作表拆分 目录 1,工作表按列拆分为工作表 2, ...

  8. excel链接隐藏工作表_在Excel 2007和2010中隐藏和取消隐藏工作表和工作簿

    excel链接隐藏工作表 Hiding worksheets can be a simple way to protect data in Excel, or just a way reduce th ...

  9. Microsoft Excel 教程:如何在 Excel 中移动或复制工作表或工作表数据?

    欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中移动或复制工作表或工作表数据. 如果需要重新组织数据,可以轻松地更 ...

最新文章

  1. GNU make manual 翻译( 一百四十九)
  2. yolov3(二:车牌识别)
  3. LaTeX入门最终集 :LaTeX格式的调整LaTeX中怎么打出数学公式LaTeX的各种上下标
  4. SDUT_2122 数据结构实验之链表七:单链表中重复元素的删除
  5. webstore安装过程 0913
  6. flask-Blueprint
  7. poi向word插入图片_【工作应用】Java根据word模板动态生成word文档(SpringBoot项目)...
  8. D5渲染器 视频学习笔记
  9. Sql 中text类型字段判断是否为空
  10. Java开发入门学习线路图+配套Java基础视频教程分享
  11. python安装失败0x80240017
  12. 弃用手机号码未被解绑小米账户:用户信息遭泄露
  13. HTTP方法的安全性和幂等性
  14. java中的super()是什么
  15. 我是如何看Vue源码的
  16. 如何应对云安全技术遇到的挑战?可从这三点入手
  17. jQuery图片预览插件
  18. liunx服务器项目迁移,linux服务器数据迁移
  19. Django计算机毕业设计高校体育馆管理信息系统(程序+LW)Python
  20. 图论——最大团问题和最大独立集、二分图相关

热门文章

  1. android编程断网的时候回调,Android Handler的详解及实例
  2. 越打压越顽固?研发6G领跑世界,华为涅槃重生,任正非功不可没!
  3. python svm函数,带有huber损失的python svm函数
  4. CAD2007破解方法
  5. 基于php汇率接口调用实例,基于C#的汇率接口调用代码实例
  6. 自建QQ/微信防红接口
  7. php如何检查图片是否一样,PHP判断图片是否为标准图片(防止篡改图片下传)
  8. 可以使用的图像全景拼接opencv
  9. ubuntu14.04 AR5B22 无线网卡连不上 AP 问题解决
  10. 一个java高级工程师的进阶之路