相关疑难解决方法(0)

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

我想在Excel 2010中使用循环遍历目录的文件.

在循环中,我将需要

  • 文件名,和
  • 文件格式化的日期.

我编写了以下代码,如果该文件夹没有超过50个文件,则工作正常,否则它是非常慢的(我需要它与> 10000文件的文件夹一起使用).这段代码唯一的问题是查找操作file.name需要花费很多时间.

代码有效,但waaaaaay太慢(每100个文件15秒):


Sub LoopThroughFiles()
   Dim MyObj As Object, MySource As Object, file As Variant
   Set MySource = MyObj.GetFolder("c:\testfolder\")
   For Each file In MySource.Files
      If InStr(file.name, "test") > 0 Then
         MsgBox "found"
         Exit Sub
      End If
   Next file
End Sub
Run Code Online (Sandbox Code Playgroud)

问题解决了:

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

excel vba excel-2010

224
推荐指数
5
解决办法
60万
查看次数

标签 统计

excel ×1

excel-2010 ×1

vba ×1