Перебирать файлы в папке с помощью VBA?
Я хотел бы просмотреть файлы каталога, используя @ У в Excel 2010.
В цикле мне понадобится
имя файла и дата, когда файл был отформатирован. Я кодировал следующее, что хорошо работает, если в папке не более 50 файлов, в противном случае это смехотворно медленно (мне нужно, чтобы она работала с папками с> 10000 файлами). Единственная проблема этого кода заключается в том, что операция для поискаfile.name
занимает очень много времени.
Код работает, но слишком медленно (15 секунд на 100 файлов):
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
определенным образом (20 секунд для 15000 файлов) и для проверки отметки времени с помощью командыFileDateTime
. Принимая во внимание еще один ответ ниже 20 секунд, сокращается до менее чем 1 секунды.