打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
瞬间200个Excel工作簿的数据合并在一起了,别人干3秒的工作,你花了3天!这就是差距,学习的差距...

你会不会有大量Excel工作簿需要合并到一起呢?你可以手动完成这一工作,但这个工作可能会花费你一整天的时间。要完成合并工作,最好使用宏,这样只需花几分钟便可搞定。本文所介绍的技巧将向你说明如何创建这样一个宏,看看如何使用宏来节省你的宝贵时间。


 某个微信朋友 在合并很多工作簿时遇到了问题。这些工作簿总数约有300个,保存在同一文件夹中,其中大多数工作簿中只包含一个单独的工作表,但有些工作簿包含多个工作表。这些工作簿中的工作表需要被复制到一个新的工作簿中,一张源工作簿里的表被复制到新工作簿里也独占一个工作表。也就是说所有的源工作簿一共里100张表,那么汇集完成后的新工作簿里除了汇集表外将有100张工作表。


  合并数量如此巨量的工作簿的最简单方法——如果经常要这样做的话——是使用宏。一个个手动复制粘贴显然是非常低效的事情。


下面的宏会显示一个对话框,提示你选择要合并的文件。(你可以通过按下Ctrl键单击或鼠标拖选的方法选择多个工作簿)它会使用代码在你所选的工作簿列表中循环,打开每个工作簿并将其中的工作表移动到当前目标工作簿的末尾。

以下代码谨慎使用,不适用所有情况,也不一定适用你的复杂情况


Sub CombineWorkbooks()

   Dim FilesToOpen

   Dim x As Integer


   On Error GoTo ErrHandler

   Application.ScreenUpdating = False


   FilesToOpen = Application.GetOpenFilename(FileFilter:='MicroSoft Excel文件(*.xls),*.xls', MultiSelect:=True, Title:='要合并的文件')


   If TypeName(FilesToOpen) = 'Boolean' Then

       MsgBox '没有选中文件'

       GoTo ExitHandler

   End If


   x = 1

   While x <= UBound(FilesToOpen)

       Workbooks.Open FileName:=FilesToOpen(x)

       Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

       x = x 1

   Wend

ExitHandler:

   Application.ScreenUpdating = True

   Exit Sub

ErrHandler:

   MsgBox Err.Description

   Resume ExitHandler

End Sub



在将工作表添加到当前目标工作簿末尾的过程中,Excel会复制工作表的名称并自动根据检测结果附加(2)、(3)等数字编号。工作簿中与其他工作表相关的任何公式也会自动更新的新的名称。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel 多表合并之 VBA 解决方案
excel工作表和工作簿拆分合并宏代码(亲测有效!)
如何将100个excel文件合并成1个excel100个工作表,每个工作表名字对应原excel文件
用VB操作excel方法汇总
Excel将多个工作表分别转为独立工作簿,也许就在蓦然回首处
Excel VBA语句集
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服