我想在Excel 2010中使用vba循环通过目录的文件。
在循环中,我需要:
文件名,以及 文件格式化的日期。
我已经编写了以下工作,如果文件夹没有超过50个文件,否则它是荒谬的慢(我需要它与>10000个文件的文件夹一起工作)。这段代码的唯一问题是查找file.name的操作花费了大量时间。
代码可以工作,但太慢了(每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
问题解决:
我的问题已经通过下面的解决方案解决了,以特定的方式使用Dir(15000个文件需要20秒),并使用命令FileDateTime检查时间戳。 考虑到另一个答案从20秒以下减少到1秒以下。