Excel 打开子文件夹-VBA中具有部分名称的所有文件

Excel 打开子文件夹-VBA中具有部分名称的所有文件,excel,vba,Excel,Vba,我试图打开所有以ToDo.xlsx结尾的文件,方法是循环遍历所有子文件夹 我在StackOverflow中的另一篇文章中发现了这个循环,但是当有很多文件时(在我的例子中是35k),它花费了太多的时间: 我的处理代码是: If InStr(oFile.Name,"ToDo"= <> 0 Then Workbooks.Open Filename:=oSubfolder & oFile 如果InStr(oFile.Name,“ToDo”=0,则工作簿.Open文件名:=oSubf

我试图打开所有以ToDo.xlsx结尾的文件,方法是循环遍历所有子文件夹

我在StackOverflow中的另一篇文章中发现了这个循环,但是当有很多文件时(在我的例子中是35k),它花费了太多的时间:

我的处理代码是:

If InStr(oFile.Name,"ToDo"= <> 0 Then Workbooks.Open Filename:=oSubfolder & oFile
如果InStr(oFile.Name,“ToDo”=0,则工作簿.Open文件名:=oSubfolder&oFile
是否有办法将此条件放入for循环中,以最小化处理时间


谢谢您

如果以下lop更快,请尝试对每个循环使用

filename = Dir(oFolder.Name & "\*ToDo.xlsx")
While (filename <> "")
    ' processing... Full name is oFolder.Name & "\" & filename
    filename = Dir
Wend
filename=Dir(oFolder.Name&“\*ToDo.xlsx”)
While(文件名“”)
'正在处理…全名为文件夹。名称&“\”&文件名
filename=Dir
温德

如果以下lop更快,请尝试使用以下lop,而不是每个
循环的

filename = Dir(oFolder.Name & "\*ToDo.xlsx")
While (filename <> "")
    ' processing... Full name is oFolder.Name & "\" & filename
    filename = Dir
Wend
filename=Dir(oFolder.Name&“\*ToDo.xlsx”)
While(文件名“”)
'正在处理…全名为文件夹。名称&“\”&文件名
filename=Dir
温德

是打开带有“ToDo”的文件需要花费时间,还是搜索所有子文件夹?通过所有子文件夹搜索所有文件问题是“如何提高在所有子文件夹中循环的性能”?不确定递归方法的性能与此相比如何..有人知道吗?是打开带有“ToDo”的文件吗ToDo“这需要时间,或者搜索所有子文件夹?通过所有子文件夹搜索所有文件”问题是“如何提高在所有子文件夹中循环的性能”?不确定递归方法的性能与此相比如何..有人知道吗?