【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