Schleife durch Dateien in einem Ordner mit Dir
Verarbeiten Sie die Dateien in einem Ordner
Der folgende Code zeigt, wie Sie die Dateien in einem Ordner verarbeiten können. FileSpec ist der Filter, den Sie anpassen können, um nur Dateien abzurufen deren Namen einem bestimmten Muster folgen, z. B. *.xslx, um alle Excel-Dateien mit der Erweiterung xslx zu erhalten.
Wenn Sie sich den Code ansehen, werden Sie feststellen, dass nur beim ersten Aufruf von Dir das Argument FileSpec verwendet wird. Dieser erste Aufruf gibt die erste Datei zurück. Nachfolgende Aufrufe innerhalb der Schleife rufen weitere Dateinamen ab, bis eine leere Zeichenkette zurückgegeben wird, was bedeutet, dass es keine weiteren Dateien zu verarbeiten gibt.
Hinweis: Eine alternative Möglichkeit, den Ordner zu inspizieren, ist die Verwendung von File System Object, das flexibel ist. Die Vorteile der Verwendung von Dir sind 1. es ist nativ in VBA, so dass Sie nicht auf die FSO-Bibliothek verweisen müssen, 2. Dir ist schnell.
Dim strFileName As String
'TODO: Specify path and file spec
Dim strFolder As String: strFolder = "C:\temp\"
Dim strFileSpec As String: strFileSpec = strFolder & "*.*"
strFileName = Dir(strFileSpec)
Do While Len(strFileName) > 0
'TODO: replace Debug.Print by the process you want to do on the file
'Dim strFilePath As String: strFilePath = strFolder & strFileName
Debug.Print strFileName
strFileName = Dir
Loop
Array von Dateinamen für einen bestimmten Ordner erstellen
Im folgenden Code werden die Dateinamen in einem Array gespeichert. Auf diese Weise können Sie die spezifische Aktivität der Verarbeitung von der Aktivität des Auffindens der zu verarbeitenden Dateien mithilfe von Dir trennen.
Dim strFileName As String
'TODO: Specify path and file spec
Dim strFolder As String: strFolder = "C:\temp\"
Dim strFileSpec As String: strFileSpec = strFolder & "*.*"
Dim FileList() As String
Dim intFoundFiles As Integer
strFileName = Dir(strFileSpec)
Do While Len(strFileName) > 0
ReDim Preserve FileList(intFoundFiles)
FileList(intFoundFiles) = strFileName
intFoundFiles = intFoundFiles + 1
strFileName = Dir
Loop
Die folgende Abbildung zeigt den Teil des Menüs Code VBA (Download), in den Sie das gewünschte Codefragment einfügen können.
