ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 21556|回复: 46

[分享] 快速合并200个Excel工作簿

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-8 13:23 | 显示全部楼层 |阅读模式
本想把论坛里的一个工作簿里的vba代码导入到自己的工作簿,搞了半天没成功(我是菜鸟),后来想能否用别的办法把他合并过来,在网上还真早到了,合并之后删除自己不要的工作表,代码保留下来,好高兴,转过来大家分享一下



快速合并200个Excel工作簿2009-04-06 22:06
       你会不会有大量Excel工作簿需要合并到一起呢?你可以手动完成这一工作,但这个工作可能会花费你一整天的时间。要完成合并工作,最好使用宏,这样只需花几分钟便可搞定。本文所介绍的技巧将向你说明如何创建这样一个宏,看看如何使用宏来节省你的宝贵时间。(本技巧可应用于Microsoft Excel 97、Excel 2000、Excel 2002、和Excel 2003。)
       这些工作簿总数约有200,保存在同一文件夹中,其中大多数工作簿中只包含一个单独的工作表,但有些工作簿包含多个工作表。这些工作簿中的工作表需要被添加到一个新的工作簿中。
       合并数量如此巨大的工作簿的最简单方法——如果经常要这样做的话——是使用宏。下面的宏会显示一个对话框,提示你选择要合并的文件。(你可以通过按下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

(宏代码应写在第一张工作表中,而不是thisewordbood)

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

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-7-21 22:30 | 显示全部楼层
复制后 一点反应也没有

TA的精华主题

TA的得分主题

发表于 2009-7-22 18:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看看

TA的精华主题

TA的得分主题

发表于 2009-7-22 19:25 | 显示全部楼层
看来需要花费点时间学习学习  VBA

TA的精华主题

TA的得分主题

发表于 2009-7-22 20:40 | 显示全部楼层
大哥,好像真的除了把表打开,没有什么动静呀。是不是我哪里用错了,请教,请教。

TA的精华主题

TA的得分主题

发表于 2009-8-10 21:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-11 08:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-10-24 13:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-10-24 12:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-10-24 12:36 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 14:53 , Processed in 0.036835 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表