VBA DIR-Funktion

Excel VBA DIR-Funktion

Die VBA-DIR- Funktion wird auch als Verzeichnisfunktion bezeichnet. Dies ist eine in VBA integrierte Funktion, mit der der Dateiname einer bestimmten Datei oder eines Ordners angegeben wird. Wir müssen jedoch den Pfad für die Datei und die von dieser zurückgegebene Ausgabe angeben Die Funktion ist eine Zeichenfolge, da sie den Namen der Datei zurückgibt. Für diese Funktion gibt es zwei Argumente: den Pfadnamen und die Attribute.

Die DIR-Funktion gibt den allerersten Dateinamen im angegebenen Ordnerpfad zurück. Wenn Sie beispielsweise in Ihrem D-Laufwerk einen Ordnernamen mit dem Namen 2019 haben und in diesem Ordner eine Excel-Datei mit dem Namen „2019 Sales“ verwenden, können Sie mithilfe der DIR-Funktion auf diese Datei zugreifen.

Die Funktion „VBA DIR“ ist sehr hilfreich, um den Namen der Datei mithilfe des Pfadordners abzurufen.

Syntax

Diese Funktion verfügt über zwei optionale Argumente.

  • [ Pfadname ]: Geben Sie als Namen den Pfad für den Zugriff auf die Datei an. Dies kann auch der Name der Datei, der Name des Ordners oder des Verzeichnisses sein. Wenn kein Pfad zugewiesen ist, gebe ich einen leeren Zeichenfolgenwert zurück, dh ""
  • [Attribute]: Dies ist auch ein optionales Argument, das Sie beim Codieren möglicherweise nicht sehr oft verwenden. Sie können das Attribut der Datei im [Pfadnamen] angeben, und die DIR-Funktion sucht nur nach diesen Dateien.

Beispiel: Wenn Sie nur auf versteckte Dateien zugreifen möchten, wenn Sie nur auf schreibgeschützte Dateien usw. zugreifen möchten, können wir dies in diesem Argument angeben. Nachfolgend sind die Attribute aufgeführt, die wir verwenden können.

Beispiele für die Verwendung der VBA DIR-Funktion

Sie können diese VBA Dir Excel-Vorlage hier herunterladen - VBA Dir Excel-Vorlage

Beispiel 1 - Zugriff auf den Dateinamen mit der DIR-Funktion

Ich werde Ihnen das einfache Beispiel für den Zugriff auf den Dateinamen mit der DIR-Funktion erklären. Befolgen Sie die folgenden Schritte.

Schritt 1: Erstellen Sie einen Makronamen.

Schritt 2: Definieren Sie die Variable als String .

Code:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Schritt 3: Nun weisen wir dieser Variablen mithilfe der DIR-Funktion einen Wert zu .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Schritt 4: Kopieren Sie nun den Dateiordnerpfad und fügen Sie ihn auf Ihrem Computer ein. Erwähnen Sie den Pfadnamen in doppelten Anführungszeichen.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Schritt 5: Ich habe meinen Pfad zum Ordner erwähnt, jetzt müssen wir auch den Dateinamen und seine Erweiterung erwähnen. Um dies als erstes zu tun, müssen wir nach dem Pfad (\) einen Backslash setzen.

Nach Eingabe des Backslash müssen wir den vollständigen Dateinamen eingeben .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA-Vorlage \ VBA Dir Excel Template.xlsm") End Sub 

Schritt 6: Zeigen Sie den Wert der Variablen im Meldungsfeld an.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA-Vorlage \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Führen Sie nun den Code aus und sehen Sie, was das Ergebnis des Meldungsfelds ist.

Die DIR-Funktion gab also den Dateinamen mit der Dateierweiterung zurück.

Beispiel 2 - Öffnen Sie die Datei mit der DIR-Funktion

Wie öffnen wir nun die Datei? Diese Funktion kann den Dateinamen zurückgeben, aber das Öffnen dieser Datei ist ein etwas anderer Vorgang. Führen Sie die folgenden Schritte aus, um die Datei zu öffnen.

Schritt 1: Erstellen Sie zwei Variablen als String .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub 

Schritt 2: Weisen Sie nun für die Variable FolderName den Ordnerpfad zu .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub 

Schritt 3: Für die Variable FileName müssen wir den Dateinamen mithilfe der DIR-Funktion ermitteln .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub 

Schritt 4: Jetzt haben wir für den Pfadnamen bereits einen Pfad für die Variable FolderPath zugewiesen, sodass wir die Variable hier direkt angeben können.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Schritt 5: Jetzt müssen wir den Dateinamen angeben. Verwenden Sie das kaufmännische Und-Symbol (&), um den Dateinamen zuzuweisen.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA-Vorlage \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Schritt 6: Verwenden Sie jetzt die WORKBOOKS.OPEN- Methode.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA-Vorlage \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Schritt 7: Dateiname ist eine Kombination aus Ordnerpfad und Dateiname . Kombinieren Sie also diese beiden.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA-Vorlage \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Arbeitsmappen.Open FolderName & FileName End Sub 

Führen Sie nun diesen Code aus, um den genannten Dateinamen zu öffnen.

Beispiel 3 - Öffnen Sie mehrere Arbeitsmappen mit der DIR-Funktion

Tatsächlich können wir auf alle Arbeitsmappen im Ordner zugreifen. Um auf jede einzelne Datei zugreifen zu können, können wir nicht alle Dateinamen direkt erwähnen, aber wir können das Platzhalterzeichen verwenden, um auf die Datei zu verweisen.

Das Sternchen (*) ist eines dieser Platzhalterzeichen. Es identifiziert eine beliebige Anzahl von Zeichen. Wenn Sie beispielsweise auf alle Makrodateien im Ordner zugreifen möchten, können Sie das Sternchen als Platzhalter verwenden, dh "* .xlsm *".

Hier * stimmt jeder Dateiname mit der Erweiterung der Datei überein, die gleich "xlsm" ist.

Code:

 Sub Dir_Example3 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "* .xlsm *") Do While FileName "" Workbooks.Open FolderName & FileName FileName = Dir ( ) Loop End Sub 

Der obige Code öffnet nun alle Dateien im Ordnerpfad.

FileName = Dir () der Grund, warum ich diese Zeile verwendet habe, weil wir den vorhandenen Dateinamen auf Null setzen müssen, um auf die nächste Datei im Ordner zuzugreifen. In dem Moment, in dem wir den vorhandenen Dateinamen auf Null setzen, wenn die Schleife zum zweiten Mal ausgeführt wird, wird die nächste Datei im Ordner verwendet.

Beispiel 4 - Holen Sie sich alle Dateinamen in den Ordner

Angenommen, wenn Sie die Liste aller Dateinamen im Ordner anzeigen möchten, können Sie dies auch mithilfe von Attributen tun.

Code:

 Sub Dir_Example4 () Dim FileName As String FileName = Dir ("E: \ VBA-Vorlage \", vbDirectory) Do While FileName "" Debug.Print FileName FileName = Dir () Loop End Sub 

Machen Sie das unmittelbare Fenster sichtbar, indem Sie Strg + G drücken .

Führen Sie nun den Code aus, wir erhalten alle Dateinamen im unmittelbaren Fenster.