recursion访问文件夹内的子文件夹文件

我已经写了这个代码来访问文件夹中的Excel文件:

strPath="C:\Test\" Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder (strPath) Set objExcel= CreateObject("Excel.Application") objExcel.Visible= False For Each objFile In objFolder.Files If objFso.GetExtensionName(objFile.Path) = "xls" Then 

现在我必须创build一些子文件夹,并在其中放置一些.xls文件。

在我的主要文件夹和所有其他子文件夹中search文件的代码中应该做些什么修改(子文件夹内还有一些文件夹)?

这实际上是一个很好解决的问题。 recursion意味着你创build了一个自引用函数(一个自我调用的函数)。 在你的情况下,你会为​​当前文件夹的每个子文件夹调用自己的函数。

 TraverseFolders objFso.GetFolder(strPath) Function TraverseFolders(fldr) ' do stuff with the files in fldr here, or ... For Each sf In fldr.SubFolders TraverseFolders sf '<- recurse here Next ' ... do stuff with the files in fldr here. End Function 

在脚本开始处运行它,它将列出所有文件夹中的所有文件:

 dir /S/B > AllFoldersAndFiles.txt 

然后遍历文件列表。 这对我有用。

recursionvb有点棘手。