使用VBA循环浏览文件夹中的文件?

我想在Excel 2010中使用vba循环浏览目录文件

在循环中,我需要:

  • 文件名,以及
  • 格式化文件的日期

我已经编写了以下代码,如果文件夹中的文件不超过50个,那么它可以正常工作,否则速度会非常慢(我需要它处理>10000个文件的文件夹)。这段代码唯一的问题是查找file.name的操作花费了大量时间

有效但速度太慢的代码(每100个文件15秒):

子环通文件()
Dim MyObj作为对象,MySource作为对象,文件作为变量
设置MySource=MyObj.GetFolder(“c:\testfolder\”)
对于MySource.Files中的每个文件
如果InStr(file.name,“test”)>0那么
MsgBox“已找到”
出口接头
如果结束
下一个文件
端接头

问题已解决:

  1. 我的问题已通过以下解决方案得到解决:以特定方式使用Dir(15000个文件为20秒),并使用命令FileDateTime检查时间戳
  2. 考虑到下面的另一个答案,20秒缩短为不到1秒

Dir需要通配符,因此您可以提前为test添加过滤器,避免测试每个文件,从而产生很大的不同

子环通文件()
作为字符串的Dim StrFile
StrFile=Dir(“c:\testfolder\*test*”)
边做边读(StrFile)>0
调试。打印StrFile
StrFile=Dir
环
端接头

发表评论