Прокручивать файлы в папке с помощью 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

Проблема решена:

  1. Моя проблема была решена с помощью приведенного ниже решения с использованием Dirособым образом (20 секунд на 15000 файлов )и для проверки метки времени с помощью команды FileDateTime.
  2. Принимая во внимание другой ответ снизу, 20 секунд сокращаются до менее 1 секунды.

224
задан Andrei Konstantinov 26 May 2019 в 22:44
поделиться