Una soluzione al problema dovrebbe essere questa:
codice:
Public Sub ScanDir(fol As Folder)
    Dim fl As Folder
    Dim fi As File
    Dim i As Integer
    Dim ff As Files
    Dim fs As Folders
    
    On Error Resume Next
    Set ff = fol.Files
    If Err.Number = 0 Then
        For Each fi In fol.Files
            Debug.Print fi.Path
        Next
    Else
        Debug.Print "La cartella " & fol.Name & " non permette l'accesso ai subfiles."
    End If
    
    Set fs = fol.SubFolders
    If Err.Number = 0 Then
        For Each fl In fol.SubFolders
            Call ScanDir(fl)
        Next
    Else
        Debug.Print "La cartella " & fol.Name & " non permette l'accesso alle subfolders."
    End If
    On Error GoTo 0
End Sub