首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

VBA遍历文件夹及子文件夹中全部文件

2013-08-01 
VBA遍历文件夹及子文件夹中所有文件VBA中遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹

VBA遍历文件夹及子文件夹中所有文件

VBA中遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹文件.FileSearch方法在office 2007中MS把Application对象FileSearch方法删除了.所有我们来用FileSystemObject对象实现遍历文件夹及子文件夹中所有文件.

代码如下:

?Dim arrFiles()
?Dim?countFiles%
?Public Sub ListAllFiles()
????
???????? Dim strPath$
???????? Dim i%
???????? Dim fso As New FileSystemObject, fd As Folder

???????? strPath = "C:\temp"
???????? ReDim arrFiles(1 To 1000)
???????? cntFiles = 0
???????? Set fd = fso.GetFolder(strPath)
???????? SearchFiles fd
???????? ReDim Preserve arrFiles(1 To countFiles)
???????? For i = 1 To cntFiles
????????????Msgbox arrFiles(i)
???????? Next i
?End Sub

?Sub SearchFiles(ByVal fd As Folder)
???? Dim fl As File
???? Dim sfd As Folder
???
???? For Each fl In fd.Files
?????? countFiles= countFiles+ 1
?????? If cntFiles > UBound(arrFiles) Then ReDim Preserve arrFiles(1 To countFiles+ 1000)

????? arrFiles(cntFiles) = fl.Path
???? Next fl
???
???? If fd.SubFolders.Count = 0 Then Exit Sub
???
???? For Each sfd In fd.SubFolders
?????? SearchFiles sfd
???? Next
???
?End Sub

热点排行