Как получить список всех файлов с расширением ESY в каталоге?

В VBA, как я получаю список всех файлов с определенным расширением в определенном каталоге?

я не могу сделать Application.FileSearch, потому что я использую Excel 2007

13
задан RubberDuck 16 February 2015 в 20:58
поделиться

3 ответа

В ответ на ваш комментарий «так сколько раз я знаю, что нужно запускать его?» , этот пример выполняется до тех пор, пока не будут перечислены все файлы, имена которых совпадают с 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
13
ответ дан 1 December 2019 в 22:56
поделиться

Dir (" C: \ yourPath \ *. ESY ", vbNormal) Возвращает первый файл с расширением esy. Каждый последующий вызов Dir () возвращает следующий.

3
ответ дан 1 December 2019 в 22:56
поделиться

Альтернативный вариант: использовать библиотеку "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
2
ответ дан 1 December 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: