листинг файлов работает, но как мне вывести список файлов в папках (VBA, excel)? - PullRequest
0 голосов
/ 18 января 2010

У меня есть код, который я нашел в Интернете, и он отлично работает. В нем перечислены все файлы в указанной папке и их свойства. Мне просто нужно изменить эту функцию, которая возвращает список файлов. Мне нужно, чтобы посмотреть по указанному пути на все файлы. Так что, если это папка, откройте ее и верните эти файлы тоже. В конце концов мне нужно получить это, чтобы пометить каждый файл (так в столбце в Excel), откуда он пришел. Если бы можно было как-то создать хирархию, это было бы замечательно .... но сейчас просто открыть папку, если она найдется, и вывести список этих файлов было бы здорово!

Любая помощь очень ценится!

Private Function fcnGetFileList(ByVal strPath As String, Optional strFilter As String) As Variant
'   Returns a one dimensional array with filenames
'   Otherwise returns False

Dim f As String
Dim i As Integer
Dim x As Integer
Dim FileList() As String

    If strFilter = "" Then strFilter = "*.*" 'can provide an extension to check?

    'set the path
    Select Case Right$(strPath, 1)
     Case "\", "/"
         strPath = Left$(strPath, Len(strPath) - 1)
    End Select

    ReDim Preserve FileList(0)

    f = Dir$(strPath & "\" & strFilter)

    Do While Len(f) > 0
        ReDim Preserve FileList(i) As String
        FileList(i) = f
        i = i + 1
        f = Dir$()
    Loop

    If FileList(0) <> Empty Then
        fcnGetFileList = FileList
    Else
        fcnGetFileList = False
    End If

End Function

1 Ответ

1 голос
/ 18 января 2010

Идеи:

Добавить среду выполнения сценариев Microsoft и использовать объект файловой системы (намного лучшую обработку файлов / папок)

Сделать эту функцию рекурсивной, добавить параметр vbdirectory в функцию dirи используйте GetAtrr, чтобы получить информацию о каждом файле.Если файл снова является папкой, снова вызовите эту функцию с этой новой папкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...