Vba: so listen sie dateien in einem ordner auf
Sie können in VBA die folgenden Methoden verwenden, um Dateien in einem Ordner aufzulisten:
Methode 1: Alle Dateien im Ordner auflisten
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
Methode 2: Nur XLSX-Dateien im Ordner auflisten
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
Die folgenden Beispiele zeigen, wie Sie jede Methode in der Praxis mit einem Ordner verwenden, der den folgenden Dateipfad hat:
- C:\Benutzer\bob\Dokumente\aktuelle_Daten
Der Ordner enthält zwei XLSX- Dateien und drei CSV- Dateien:
Beispiel 1: Alle Dateien im Ordner auflisten
Wir können das folgende Makro erstellen, um alle Dateien im Ordner aufzulisten:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Wir können sehen, dass die Namen aller Dateien im Ordner (unabhängig von ihrer Erweiterung) jetzt in Spalte A unserer Excel-Tabelle aufgeführt sind.
Beispiel 2: Nur XLSX-Dateien im Ordner auflisten
Wir können das folgende Makro erstellen, um nur Dateien im Ordner aufzulisten, die die Erweiterung .xlsx haben:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Wir können sehen, dass jetzt nur noch die Namen der Dateien mit der Erweiterung .xlsx im Ordner in Spalte A unserer Excel-Tabelle aufgeführt sind.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
So erstellen Sie Ordner mit VBA
So löschen Sie Ordner mit VBA
So benennen Sie eine Datei mit VBA um
So überprüfen Sie mit VBA, ob eine Datei vorhanden ist