【发布时间】:2012-10-11 17:33:06
【问题描述】:
我正在尝试应用以下代码,该代码适用于在文件夹中的所有文件中运行此 VBA 循环,以使其在一个文件夹中的所有文件夹中运行。
有什么办法可以做到吗?
我有大约 50 个文件夹,每个文件夹都有相同的命名工作簿,所以我需要尝试提高它的效率。
谢谢!
Sub LoopFiles()
Application.DisplayAlerts = False
Dim strDir As String, strFileName As String
Dim wbCopyBook As Workbook
Dim wbNewBook As Workbook
strDir = "C:\Documents and Settings\mburke\Desktop\Occupancy 2013\"
strFileName = Dir(strDir & "*.xlsm")
Set wbNewBook = Workbooks.Add
Do While strFileName <> ""
Set wbCopyBook = Workbooks.Open(strDir & strFileName)
wbCopyBook.Sheets(1).Copy Before:=wbNewBook.Sheets(1)
wbCopyBook.Close False
strFileName = Dir
Loop
Application.DisplayAlerts = True
End Sub
【问题讨论】:
-
这 50 个文件夹是否全部位于您的主成型机下方,或者它们是否“嵌套”在两层或多层中?以后需要递归调用
-
另见stackoverflow.com/questions/10898782/… 查看
ProcessFiles()函数,该函数基于从 vbaexpress.com 获取的代码