Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5139|回复: 6

[分享] 合并指定文件夹下的所有.xls文件

[复制链接]
发表于 2012-2-17 12:47 | 显示全部楼层 |阅读模式
Sub CombineWorkbooks()
   
    Dim CurFile As String
    Dim DestWB As Workbook
    Dim ws As Object
    Const DirLoc As String = "C:\" (改成你实际存放文件的folder)
    Application.ScreenUpdating = False
    Set DestWB = Workbooks.Add(xlWorksheet)
    CurFile = Dir(DirLoc & "*.xls") (.CSV,.PRN等格式类推)

    Do While CurFile <> vbNullString
        Dim OrigWB As Workbook
        Set OrigWB = Workbooks.Open(Filename:=DirLoc & CurFile, ReadOnly:=True)
        CurFile = Left(Left(CurFile, Len(CurFile) - 4), 29)

        For Each ws In OrigWB.Sheets
            ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count)
            If OrigWB.Sheets.Count > 1 Then
                DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index
            Else
                DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile
            End If
        Next

        OrigWB.Close SaveChanges:=False
        CurFile = Dir
    Loop

    Application.DisplayAlerts = False
        DestWB.Sheets(1).Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set DestWB = Nothing

End Sub

评分

参与人数 1 +12 收起 理由
无聊的疯子 + 12 先收藏,慢慢研究

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-2-17 13:53 | 显示全部楼层
回复

使用道具 举报

发表于 2012-11-13 22:45 | 显示全部楼层
回复

使用道具 举报

发表于 2016-3-15 11:36 | 显示全部楼层

收藏了
回复

使用道具 举报

发表于 2016-3-27 20:53 | 显示全部楼层
收藏了
回复

使用道具 举报

发表于 2016-6-18 16:19 | 显示全部楼层
收藏了
回复

使用道具 举报

发表于 2017-10-3 16:45 | 显示全部楼层
收藏了,以后有用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 00:26 , Processed in 0.403839 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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