Ich verwende den folgenden Code, um alle Dateien mit xls, xlsx oder xlsm-Erweiterung aus dem Ordner und seinem Unterordner aufzulisten. Der folgende Code funktioniert, aber das Problem ist, es listet alle Dateien mit allen Erweiterungen aus Unterordnern auf, aber Listen nur Excel-Dateien aus dem Hauptordner. Ich kann nicht herausfinden, was mit diesem Code falsch ist. Kannst du mir bitte Helfen?Verwenden von VBA FileSystemObject, spezifische Datei Dateierweiterung
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
Dank
Nichts funktioniert. Es ruft alle xl-Dateien korrekt ab. –
fügen Sie einige pdf zu Ihren Ordnern und Untermappen zusammen mit Excel-Dateien und versuchen Sie es erneut..main Problem ist mit Unterordnern mit anderen oder PDF-Dateien .. – Shan