【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 就会报错,需要重新指定参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

原始链接


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:【VBA案例013】多个工作簿所有Sheet汇总到一个工作簿中

字数:369

本文作者:Rich Fan

发布时间:2023-10-23, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2023/10/22/VBA/VBA%E6%A1%88%E5%88%97/%E3%80%90VBA%E6%A1%88%E4%BE%8B013%E3%80%91%E5%A4%9A%E4%B8%AA%E5%B7%A5%E4%BD%9C%E7%B0%BF%E6%89%80%E6%9C%89Sheet%E6%B1%87%E6%80%BB%E5%88%B0%E4%B8%80%E4%B8%AA%E5%B7%A5%E4%BD%9C%E7%B0%BF%E4%B8%AD/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。