在下面的示例中,我通过递归调用一个过程来遍历一个文件夹下的文件,包括其子文件夹,孙文件夹,子子孙孙无穷尽,只要内存不崩溃。
Dim n As Long '首先定义一个公共变量
Sub bianli(myPath As String) '该函数需传入一个自定义文件夹路径
Dim fso As Object, fds As Object
Set fso = CreateObject("scripting.FileSystemObject")
Set fds = fso.getFolder(myPath)
'对于本文件夹下的文件,依次把文件路径名打印到激活工作表单元格
For Each file In fds.Files
n = n + 1
Cells(n, 1).Value = file.Path
Next
'对于本文件夹下的子文件夹,递归调用本过程
For Each folder In fds.subfolders
Call bianli(folder.Path)
Next
End Sub
以上是过程定义,接下来直接调用即可
Sub test()
bianli "D:\Hello文件夹"
End Sub