VBA Loop Through all Files in subfolders

VBA Loop Through all Files in subfolders

VBA Loop Through all Files in subfolders using File System Object(FSO) and built-in Dir() function. VBA for each file in sub-folder macro helps us to loop through all files in sub-folders. In this tutorial we loop through sub-folders and list all available files in sub-folders using FSO early-binding and late-binding method and Dir() function.

There are two approaches to use FSO object library.
1. Early Binding
2. Late Binding

Loop through all files in sub-folders using FSO – Early Binding in Excel VBA

Let us see example on Loop through all files in sub-folders using FSO – Early Binding in Excel VBA.

'Loop Through all Files in sub-folders  using FSO early Binding in Excel VBA
Sub VBA_Loop_Through_all_Files_in_subfolders_Using_FSO_Early_Binding()

    'Variable Declaration
    Dim oFSO As FileSystemObject, oFolder As Object
    Dim oSubFolders As Object, oSFolderFile As Object
    Dim sFile As Object, sfolders As Object
    Dim Wbook As Workbook
    Dim i  As Integer
    
    'Initialize value
    i = 2
    
    'Declare headers
    With Sheet1
        .Range("A1") = "SubFolder Name"
        .Range("B1") = "File Name"
    End With
    
    'Set objects
    Set oFSO = New FileSystemObject
    Set oFolder = oFSO.GetFolder("C:\VBAF1")
    Set oSubFolders = oFolder.subfolders
    
    'Loop through subfolders
    For Each sfolders In oSubFolders
         Sheet1.Range("A" & i) = sfolders.Name
        Set oSFolderFile = sfolders.Files
        
        'Loop through all files in a subfolder
        For Each sFile In oSFolderFile
            Sheet1.Range("B" & i) = sFile.Name
            i = i + 1
        Next
    Next
    
    'Release the memory
    Set oFSO = Nothing
    Set oFolder = Nothing
    Set oSubFolders = Nothing
    Set oSFolderFile = Nothing

End Sub

Note: If you get any error while executing above macro follow the below specified instructions to add FSO library reference.

Add Early Binding Reference

Here are the instructions to add early binding reference.

  • Go to Tools from VBE menu.
  • Click on references from the available options.
  • Check the Microsoft scripting Runtime.
  • Click on OK.
  • Please find the below screenshot for your reference.

List all files in subfolders using FSO – Late Binding in Excel VBA

Let us see example on Loop through all files in subfolders using FSO – Late Binding in Excel VBA.

'Loop Through all Files in subfolders using FSO late Binding
Sub VBA_Loop_Through_all_Files_in_subfolders_Using_FSO_Late_Binding()

    'Variable Declaration
    Dim oFSO As Object, oFolder As Object
    Dim oSubFolders As Object, oSFolderFile As Object
    Dim sFile As Object, sfolders As Object
    Dim Wbook As Workbook
    Dim i  As Integer
    
    'Initialize value
    i = 2
    
    'Declare headers
    With Sheet1
        .Range("A1") = "SubFolder Name"
        .Range("B1") = "File Name"
    End With
    
    'Set objects
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder("C:\VBAF1")
    Set oSubFolders = oFolder.subfolders
    
    'Loop through subfolders
    For Each sfolders In oSubFolders
         Sheet1.Range("A" & i) = sfolders.Name
        Set oSFolderFile = sfolders.Files
        
        'Loop through all files in a subfolder
        For Each sFile In oSFolderFile
            Sheet1.Range("B" & i) = sFile.Name
            i = i + 1
        Next
    Next
    
    'Release the memory
    Set oFSO = Nothing
    Set oFolder = Nothing
    Set oSubFolders = Nothing
    Set oSFolderFile = Nothing

End Sub

Output: Here is the output screenshot of above macro code procedure.

Loop Through all Files in subfolders output
Loop Through all Files in sub-folders output

Instructions to Run VBA Macro Code or Procedure:

You can refer the following link for the step by step instructions.

Instructions to run VBA Macro Code

Other Useful Resources:

Click on the following links of the useful resources. These helps to learn and gain more knowledge.

VBA Tutorial VBA Functions List VBA Arrays VBA Text Files VBA Tables

VBA Editor Keyboard Shortcut Keys List VBA Interview Questions & Answers Blog

Leave a Comment