Я хотел бы пропустить файлы каталога с помощью vba в Excel 2010.
В цикле мне понадобится
- имя файла и
- дата форматирования файла.
Я закодировал следующее, которое прекрасно работает, если папка имеет не более 50 файлов, в противном случае это смехотворно медленно (мне нужно, чтобы она работала с папками s > 10000 файлами). Единственная проблема этого кода заключается в том, что операция поиска file.name
занимает очень много времени.
Код, который работает, но waaaaaay слишком медленный (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 секунды.