В VBA, как я получаю список всех файлов с определенным расширением в определенном каталоге?
я не могу сделать Application.FileSearch
, потому что я использую Excel 2007
В ответ на ваш комментарий «так сколько раз я знаю, что нужно запускать его?» , этот пример выполняется до тех пор, пока не будут перечислены все файлы, имена которых совпадают с strPattern . Измените константу strFolder .
Public Sub ListESY()
Const strFolder As String = "C:\SomeFolder\"
Const strPattern As String = "*.ESY"
Dim strFile As String
strFile = Dir(strFolder & strPattern, vbNormal)
Do While Len(strFile) > 0
Debug.Print strFile '<- view this in Immediate window; Ctrl+g will take you there
strFile = Dir
Loop
End Sub
Dir (" C: \ yourPath \ *. ESY ", vbNormal) Возвращает первый файл с расширением esy. Каждый последующий вызов Dir () возвращает следующий.
Альтернативный вариант: использовать библиотеку "Microsoft Scripting Runtime" (проверьте ее в Tools...References) для семейства объектов FileSystemObject. Возможно, что-то вроде следующего:
Public Function ESYFileCount(dir_path as String) as Long
Dim fil As File
With New FileSystemObject
With .GetFolder(dir_path)
For Each fil In .Files
If LCase(Right(fil.Name, 4)) = ".esy" Then
ESYFileCount = ESYFileCount + 1
End If
Next
End With
End With
End Function