vba 遍历指定文件夹(含子目录)获取文件名,哪种方法速度最快?
vba遍历指定文件夹(含子目录),哪种方法速度最快?请贴出代码(每行有注释)。...vba 遍历指定文件夹(含子目录),哪种方法速度最快?请贴出代码(每行有注释)。
展开
最佳答案
Sub LoopAllExcelFilesInFolder()Dim wb As WorkbookDim myPath As StringDim myFile As StringDim myExtension As StringDim FldrPicker As FileDialog'这里很关键,决定宏执行快慢的关键Application.ScreenUpdating = FalseApplication.EnableEvents = FalseApplication.Calculation = xlCalculationManual'打开目录选择框Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)With FldrPicker.Title = '请选择目录'.AllowMultiSelect = FalseIf .Show <> -1 Then GoTo NextCodemyPath = .SelectedItems(1) & '\'End With'取消选择NextCode:myPath = myPathIf myPath = '' Then GoTo ResetSettings'指定过滤的文件后缀myExtension = '*.xls*''遍历全路径myFile = Dir(myPath & myExtension)'循环处理每一个文件Do While myFile <> '''打开Set wb = Workbooks.Open(Filename:=myPath & myFile)'确保工作簿被打开,在处理下一个文件时DoEvents'设置背景色wb.Worksheets(1).Range('A1:Z1').Interior.Color = RGB(51, 98, 174)'保存工作簿wb.Close SaveChanges:=True'确保工作簿被关闭,在处理下一个文件时DoEvents'接着处理下一个myFile = DirLoop'提示处理完成MsgBox '处理完成!'ResetSettings:'恢复设置Application.EnableEvents = TrueApplication.Calculation = xlCalculationAutomaticApplication.ScreenUpdating = TrueEnd Sub
查看全文2018-09-06
赞 (0)