VBA遍历指定文件夹的所有文件(包括子目录)
1.添加引用:Microsoft Scripting Runtime
2.定义一个遍历文件的过程,过程需要传递一个文件夹变量
'遍历文件的过程,并填充到工作表
Sub LookUpAllFiles(fld As Folder)
Dim fil As File, outFld As Folder '定义一个文件夹和文件变量
Set subfiles = fld.Files() '获取文件夹下所有文件
Set SubFolders = fld.SubFolders '获取文件夹下所有文件夹
For Each fil In fld.Files '遍历文件
n = n + 1
Range("a" & n).Value = fil.Name '把文件名填充到数据表
Next
For Each outFld In SubFolders '遍历文件夹
LookUpAllFiles outFld '调用函数自身
Next
End Sub
这里有一个公共变量,需要在函数外定义
Private n As Integer
4.然后,显示一个输入对话框,输入文件名,就能遍历所有文件了
Sub demo()
Dim fso As New FileSystemObject '定义一个文件系统对象
Dim fld As Folder, sr As String
n = 0
sr = InputBox("请输入文件路径") '显示一个文本框输入文件名
If fso.FolderExists(sr) Then '判断文件是否存在
Range("a:a").ClearContents
Set fld = fso.GetFolder(sr)
LookUpAllFiles fld '调用函数
Else
MsgBox "文件夹不存在"
End If
End Sub
效果:
赞 (0)