收藏 分享(赏)

在VBA遍历文件夹和子文件夹中所有文件.doc

上传人:scg750829 文档编号:9224220 上传时间:2019-07-30 格式:DOC 页数:2 大小:25KB
下载 相关 举报
在VBA遍历文件夹和子文件夹中所有文件.doc_第1页
第1页 / 共2页
在VBA遍历文件夹和子文件夹中所有文件.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 在 VBA 遍历文件夹和子文件夹中所有文件,常用两种方法,一种是使用 VBA 的 filesercth 对象,另外一种是使用 FileSystemObject(windows 文件管理工具) 和递归方法。兰色对代码进行了注解,希望对大家有所帮助第一种方法:使用 filesearch 对象Sub mysearch()Dim fs, i, arr(1 To 10000)Set fs = Application.FileSearch 设置一个搜索对象With fs.LookIn = ThisWorkbook.Path & “/“ 设置搜索路径.Filename = “*.xls“ 要搜索文件名和类

2、型.SearchSubFolders = True 是否需要搜索子文件夹If .Execute 0 Then 如果找不到文件MsgBox “There were “ & .FoundFiles.Count & _“ file(s) found.“ 显示文件找不到For i = 1 To .FoundFiles.Count 通过循环把所有搜索到的文件存入到数组中arr(i) = .FoundFiles(i)Next iSheets(1).Range(“A1“).Resize(.FoundFiles.Count) = Application.Transpose(arr) 把数组内的路径和文件名放在

3、单元格中ElseMsgBox “There were no files found.“End IfEnd WithEnd Sub第二种方法:引用 FileSystemObject 对象注意:要使用 FileSystemObject 对象,需要首先引用一下,具体方法,VBE-工具-引用-找到 miscrosoft scription runtime 项目并选中代码及注释:Dim ArrFiles(1 To 10000) 创建一个数组空间, 用来存放文件名称Dim cntFiles% 文件个数Public Sub ListAllFiles()Dim strPath$ 声明文件路径Dim i%Set

4、 fso = CreateObject(“Scripting.FileSystemObject“)Dim fso As New FileSystemObject, fd As Folder 创建一个 FileSystemObject 对象和一个文件夹对象strPath = ThisWorkbook.Path & “ “设置要遍历的文件夹目录cntFiles = 0Set fd = fso.GetFolder(strPath) 设置 fd 文件夹对象SearchFiles fd 调用子程序查搜索文件Sheets(1).Range(“A1“).Resize(cntFiles) = Applicat

5、ion.Transpose(ArrFiles) 把数组内的路径和文件名放在单元格中End SubSub SearchFiles(ByVal fd As Folder)Dim fl As FileDim sfd As FolderFor Each fl In fd.Files 通过循环把文件逐个放在数组内cntFiles = cntFiles + 1ArrFiles(cntFiles) = fl.PathNext flIf fd.SubFolders.Count = 0 Then Exit Sub SubFolders 返回由指定文件夹中所有子文件夹(包括隐藏文件夹和系统文件夹)组成的 Folders 集合For Each sfd In fd.SubFolders 在 Folders 集合进行循环查找SearchFiles sfd 使用递归方法查找下一个文件夹NextEnd Sub

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报