【VBA案例013】多个工作簿所有Sheet汇总到一个工作簿中

大家好!昨天视频放错了,今天重新发一下。图片

这次分享的是合并系列的最后一个案例:汇总工作簿。

打个比方:把多个工作簿中的每个Sheet,汇总到一个工作簿里,汇总完之后是所有的Sheet都在同一个工作簿里。

这次使用了Dir函数,以下是VBA代码。详细解析请看文末的视频。

‘Dir函数:返回的是指定路径下【文件】或者【文件夹】的名称。如果不存在,就返回 "" 字符串 ‘Dir 函数一般搭配 do while 循环遍历文件,结束的条件就是Dir返回空值。

‘举例: ‘fileName1 = Dir(“E:\test*.xlsx”) 查找E盘test文件夹里边的xlsx工作簿,将第一个工作簿名称返回 ‘fileName2 = Dir 查找下一个,并且不需要写参数 ‘fileName3 = Dir 查找下一个,并且不需要写参数 ‘fileName4 = Dir 查找下一个,并且不需要写参数 ‘…… …… ‘当返回 "" 的时候说明查找完了。如果直接 fileName_N = Dir 就会报错,需要重新指定参数

Sub 汇总工作簿()

    Dim filePath, fileName
    Dim sht As Worksheet

    filePath = ThisWorkbook.Path & "\文件夹\"

    fileName = Dir(filePath & "*.xlsx")

    Application.ScreenUpdating = False
    Do While fileName <> ""
        With Workbooks.Open(filePath & fileName)
            For Each sht In .Worksheets
                sht.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
                ActiveSheet.Name = sht.Name & "-" & Replace(.Name, ".xlsx", "")
            Next
            .Close False
        End With
        fileName = Dir
    Loop
    Application.ScreenUpdating = True

End Sub

原始链接

目录:
Categories
程技
Tags
VBA