VBA 文件夹递归

示例

早期绑定(参考Microsoft Scripting Runtime)

    Sub EnumerateFilesAndFolders( _

        FolderPath As String, _

        Optional MaxDepth As Long = -1, _

        Optional CurrentDepth As Long = 0, _

        Optional Indentation As Long = 2)

      

        Dim FSO As Scripting.FileSystemObject

        Set FSO = New Scripting.FileSystemObject

        

        'Check the folder exists

        If FSO.FolderExists(FolderPath) Then

            Dim fldr As Scripting.Folder

            Set fldr = FSO.GetFolder(FolderPath)

            

            'Output the starting directory path

            If CurrentDepth = 0 Then

             Debug.Printfldr.Path

            End If

            

            'Enumerate the subfolders

            Dim subFldr As Scripting.Folder

            For Each subFldr In fldr.SubFolders

               Debug.PrintSpace$((CurrentDepth + 1) * Indentation) & subFldr.Name

                If CurrentDepth < MaxDepth Or MaxDepth = -1 Then

                    'Recursively call EnumerateFilesAndFolders

                    EnumerateFilesAndFolders subFldr.Path, MaxDepth, CurrentDepth + 1, Indentation

                End If

            Next subFldr

            

            'Enumerate the files

            Dim fil As Scripting.File

            For Each fil In fldr.Files

               Debug.PrintSpace$((CurrentDepth + 1) * Indentation) & fil.Name

            Next fil

        End If

    End Sub

           

以上是 VBA 文件夹递归 的全部内容, 来源链接: utcz.com/z/315817.html

回到顶部