Usando o VBA FileSystemObject, arquivo específico Extensão de arquivo

Estou usando o código a seguir para listar todos os arquivos com as extensões xls, xlsx ou xlsm da pasta e sua subpasta. O código a seguir funciona, mas o problema é: ele lista todos os arquivos com todas as extensões das subpastas, mas lista apenas os arquivos Excel da pasta principal. Não consigo descobrir o que há de errado com este código. Podes ajudar-me, por favor?

Sub List_XL_Files(ByVal SheetName As String, ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)

Dim FSO As Object
Dim SourceFolder As Object
Dim SubFolder As Object
Dim FileItem As Object
Dim lRoMa As Long

Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder(SourceFolderName)

lRoMa = ThisWorkbook.Sheets(SheetName).Cells(Rows.Count, 2).End(xlUp).Row + 1
ReDim arrFolders(ctr)

With ThisWorkbook.Sheets(SheetName)
    For Each FileItem In SourceFolder.Files
           strFileExt = FSO.GetExtensionName(FileItem)
           If strFileExt = "xlsm" Or strFileExt = "xlsx" Or strFileExt = "xls" Then
                MsgBox strFileExt
                .Cells(lRoMa + r, 1).Value = lRoMa + r - 7
                .Cells(lRoMa + r, 2).Formula = strFileExt
                .Cells(lRoMa + r, 3).Formula = FileItem.Name
                .Cells(lRoMa + r, 4).Formula = FileItem.Path
                .Cells(lRoMa + r, 5).Value = "-"
                .Cells(lRoMa + r, 6).Value = ""
                .Cells(lRoMa + r, 7).Value = ""
                 r = r + 1                                      ' next row number
                 X = SourceFolder.Path
           End If
    Next FileItem
End With

If IncludeSubfolders Then
    For Each SubFolder In SourceFolder.SubFolders
        ListFilesInFolder SheetName, SubFolder.Path, True
    Next SubFolder
End If

Set FileItem = Nothing
Set SourceFolder = Nothing
Set FSO = Nothing

End sub

obrigado

questionAnswers(1)

yourAnswerToTheQuestion