Wie man die VBA DIR-Funktion in Excel verwendet (7 praktische Beispiele)

  • Teile Das
Hugh West

Die DIR Funktion in VBA zeigt hauptsächlich das Verzeichnis oder die Dateien eines bestimmten Ordners an. Mit dieser Funktion kann auch die erste Datei zurückgegeben werden. Diese Funktion ist vielseitig einsetzbar, um bestimmte Dateien und Ordner zu erhalten. Sie müssen nur den Dateipfad in den Pfadnamen der Funktion VBA Es kann schwieriger sein, den Code zu verwenden. VBA DIR Keine Sorge, in diesem Artikel werden wir Ihnen einige Beispiele für eine bessere Visualisierung der Verwendung des Codes zeigen. VBA DIR Ich hoffe, dass Sie die Funktion nach der Lektüre des Artikels verwenden können. Also, fangen wir an.

Download Arbeitsbuch Praxis

Laden Sie das folgende Übungsbuch herunter, das Ihnen helfen wird, das Thema besser zu verstehen.

DIR-Funktion.xlsm

Einführung in die Funktion DIR

Zusammenfassung:

Die VBA DIR gibt den Namen einer Datei oder eines Verzeichnisses aus einem gegebenen Ordnerpfad zurück, üblicherweise die erste Datei.

Syntax:

Dir [ (Pfadname, [ Attribute ] ) ]

Argumente Erläuterung:

Argument Erforderlich/Optional Erläuterung
Pfadname Optional Pfad zugreifen und gibt die Datei
Attribute Optional Konstante oder numerischer Ausdruck gibt die Attribute der passenden Dateien an

Es gibt einige vordefinierte Attribute, sie sind

Attribut Name Beschreibung
vbNormal Dateien ohne spezifische Attribute
vbReadOnly Nur-Lese-Dateien ohne Attribute
vbHidden Versteckte Dateien ohne Attribute
vbSystem Systemdateien ohne Attribute
vbVolume Band-Etikett
vbDirectory Verzeichnisse oder Verzeichnisse ohne Attribute
vbAlias Angegebener Dateiname ist ein Alias

7 Beispiele für die Verwendung der VBA-Funktion DIR in Excel

Aus der Beschreibung hätte man schließen können, dass die VBA DIR liefert den Dateinamen aus dem angegebenen Pfadnamen. Wir wollen das an einem Beispiel erläutern. Hier haben wir ein Verzeichnis erstellt Exceldemy_Ordner In diesem Ordner befinden sich verschiedene kleine Ordner und Dateien.

1. den Dateinamen im Pfad suchen

In unserem Ordner können wir eine bestimmte Datei finden, indem wir den Pfad des Dateinamens angeben.

Nachdem Sie den Pfad der Datei kopiert haben, müssen Sie den Code ausführen.

Gehen Sie deshalb auf die Seite Entwickler tab>> auswählen Visual Basic Dann gehen Sie zu einfügen. tab>> auswählen Modul. In der Allgemein Dialogfeldes schreiben wir den Code.

Da unser Ziel darin besteht, die Dateiname aus dem Pfadnamen, setzen wir den vollständigen Pfadnamen (vom Stammverzeichnis bis zur Datei) und unser Code lautet

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub 

Hier in unserem Code haben wir den Pfadnamen als E:\Exceldemy\Umsatz_von_Januar.xlsx

Code-Aufschlüsselung:

  • Zunächst haben wir eine String-Variable namens FN Und die Ausgabe des Dir. Funktion wurde in dieser Variablen gespeichert.
  • Als nächstes wird die Dir. findet den Dateinamen und gibt ihn unter dem angegebenen Pfad zurück.
  • Dann wird die MsgBox setzt die Ausgabe über die Messagebox. Die MsgBox gibt die Ausgabe in einem Meldungsfenster zurück.
  • Führen Sie dann den Code mit der Option F5 Schlüssel.

Schließlich haben wir die Datei mit dem Namen Umsatz_im_Januar.xlsx .

2. das Vorhandensein eines Verzeichnisses prüfen

Wir können das Vorhandensein eines Verzeichnisses überprüfen, indem wir die Dir. Schreiben wir den Code, um zu prüfen, ob die Funktion Exzellent Schreiben Sie den folgenden Code in den allgemeinen Kasten und führen Sie ihn mit dem Befehl F5 Schlüssel.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "The file doesn't exist" End If End Sub 

Code-Aufschlüsselung:

  • Wir haben zwei Variablen deklariert; PN enthält den vollständigen Pfadnamen unseres Prüfverzeichnisses.
  • Hier im Dir Funktion haben wir zwei Werte gesetzt, den Pfadnamen und den Attributwert als vbDirectory Dieser Attributwert hilft bei der Erkennung des Verzeichnisses. Und die Ausgabe dieser Funktion wird in der Datei Datei variabel.
  • Dann wird geprüft, ob die Variable leer ist oder nicht. Wenn dies nicht der Fall ist, wird das Vorhandensein des Verzeichnisses in einem Meldungsfeld angezeigt, andernfalls ist die Rückgabe nicht vorhanden.

Hier ist die Exzellent Verzeichnis existiert, also finden wir " Exzellenz existiert ", wobei Exzellent ist der Name des Ordners.

3. einen Ordner erstellen, der nicht vorhanden ist

Sie können einen Ordner erstellen, der auf Ihrem PC nicht existiert. Dazu müssen Sie einen Pfadnamen erstellen, der in Ihren Ordnern nicht existiert. Nehmen wir an, wir erstellen ein Verzeichnis namens Exceldemy_1 Wir werden die MkDir Befehl, um das Verzeichnis zu erstellen, aber vorher müssen wir folgendes schreiben VBA Code.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " File folder exists" Else MkDir PN MsgBox "A file folder has been created with the name" & File End If End Sub 

Hier haben wir einen Befehl geschrieben, der das Verzeichnis mit dem Pfadnamen aus der Datei Sonst Block unseres Codes. Führen Sie aus. den Code mit dem F5 Schlüssel.

Das Verzeichnis wurde erstellt. Schauen wir uns das Verzeichnis an. Der Exceldemy_1 ist nun auf Ihrem Computer sichtbar.

Ähnliche Lektüre:

  • Wie man ein Sub in VBA in Excel aufruft (4 Beispiele)
  • Einen Wert in einer VBA-Funktion zurückgeben (sowohl Array- als auch Nicht-Array-Werte)
  • Verwendung der VBA-Funktion UCASE in Excel (4 Beispiele)
  • Verwendung der TRIM-Funktion in VBA in Excel (Definition + VBA-Code)

4. die erste Datei in einem Verzeichnis suchen

Die Hauptaufgabe der Dir. Funktion ist es, die erste Datei im angegebenen Verzeichnis zu finden. Alles, was Sie innerhalb der Funktion angeben müssen, ist der Pfadname (bis zum Container-Verzeichnis), und sie wird die allererste Datei aus diesem Verzeichnis zurückgeben.

Lassen Sie uns die erste Datei aus unserer Exzellent Unser Code wird sein

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "Erste Datei: " & FN End Sub 

Sie können den grundlegenden Code sehen; wir haben den Pfadnamen an die Dir. Funktion: Jetzt ausführen. den Code mit dem F5 drücken, finden Sie die erste Datei in diesem Verzeichnis.

5. alle Dateien in einem Verzeichnis suchen

Im vorigen Abschnitt haben wir gesehen, wie man den ersten Dateinamen eines Verzeichnisses findet. Es kann vorkommen, dass Sie alle Dateien eines bestimmten Verzeichnisses suchen müssen. Um alle Dateien in einem bestimmten Verzeichnis zu finden, müssen Sie Folgendes schreiben VBA Code.

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("File List:" & FL) End Sub 

Hier sind zwei Variablen, die die Dateinamen als eine einzige ( FN ), und als Liste ( FL ). die Do While Schleife durchläuft, bis keine Datei mehr im Verzeichnis vorhanden ist, mit dieser Schleife schieben wir jeden Dateinamen in die FL variabel.

Führen Sie den Code aus, und Sie finden alle Dateien in dem Verzeichnis, wie in der folgenden Abbildung dargestellt.

6. alle Dateien und Ordner in einem Verzeichnis suchen

Im vorigen Abschnitt haben wir erwähnt, wo alle Dateien zu finden sind. Wir können auch alle Unterordner eines Ordners finden. Dazu schreiben Sie Folgendes VBA Code, den wir unten beigefügt haben.

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("Datei Lst:" & Lst) End Sub 

Die Änderung in unserem Code besteht lediglich in der Verwendung von Attributparametern. Wir haben die vbDirectory in diesem Bereich. ausführen. den Code, und Sie finden alle Dateien und Unterordner von Exceldemy_Ordner .

7. alle Dateien eines bestimmten Typs suchen

Die Verwendung des VBA-Leiter können wir jeden beliebigen Dateityp finden, was wir an einem Beispiel erläutern wollen.

Wir werden finden .csv Unser Code sieht dann wie folgt aus.

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Liste der .csv-Dateien:" & FL) End Sub 

Wir hoffen, Sie haben den Code verstanden, der einen ähnlichen Mechanismus zum Auffinden von Dateien verwendet. Im Pfadnamen haben wir einen Platzhalter ( * ). Dieses Sternchen (*) bedeutet, dass jedes Zeichen bis zu einer beliebigen Zahl vorkommen kann. Der Platzhalter wurde so verwendet, dass der Dateiname beliebig sein kann, aber eine .csv Datei.

Wenn Sie den Code ausführen, gibt er die .csv Dateien aus unserem Exzellent Verzeichnis.

Praxisteil

Wir haben auf jedem Blatt auf der rechten Seite einen Übungsteil vorgesehen, den Sie bitte selbständig bearbeiten.

Schlussfolgerung

Das ist alles über die heutige Sitzung. Und dies sind einige einfache Beispiele für die VBA-Leiter Bitte lassen Sie uns in den Kommentaren wissen, wenn Sie Fragen oder Anregungen haben. Zum besseren Verständnis laden Sie bitte das Übungsblatt herunter und besuchen Sie unsere Website, Exzellent , einem Anbieter von Excel-Lösungen aus einer Hand, um sich über verschiedene Excel-Methoden zu informieren. Vielen Dank für Ihre Geduld beim Lesen dieses Artikels.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.