Excel VBA FreeFile

Wie oft öffnen Sie als Excel-Benutzer eine Datei und arbeiten daran? Sehr häufig, richtig? Es ist wieder möglich, die Aufgaben des Öffnens der Datei in Excel mit einem leistungsstarken Tool VBA zu automatisieren, mit dem Sie Makros schreiben können, und schließlich alle Aufgaben zu automatisieren, beginnend mit dem Öffnen einer Datei von einem bestimmten Ort aus, um sie zu verwenden, zu speichern und zu schließen Pfad. Bei der Automatisierung des Öffnens und Schließens von Dateien über VBA ist es sehr wichtig, die Datei zu indizieren, damit das System zum Zeitpunkt der Ausführung die zu verwendende Datei identifizieren kann. In VBA ist eine Funktion namens FreeFile verfügbar, die diesem Zweck dient.

Was ist die VBA FreeFile-Funktion?

VBA FreeFile ist eine Funktion, die der VBA-Funktion zugeordnet ist. Mit dieser Funktion kann das System eine Nummer für die nächste unter VBA File Input Output zu öffnende Datei reservieren, um eine reibungslose Codierung zu gewährleisten und unnötige Fehler in Ihrem Code zu vermeiden. Wenn Sie eine Datei über VBA File IO (Input / Output) öffnen, ist es unbedingt erforderlich, dieser Datei eine eindeutige Nummer zuzuweisen, da sich möglicherweise mehrere Dateien an dem Speicherort befinden, den Sie zum Lesen, Schreiben und Öffnen Ihrer Datei verwenden möchten Code. Woher weiß das System, welche Datei von allen Dateien Sie öffnen möchten? Die VBA FreeFile-Funktion identifiziert die eindeutige Nummer, die wir der Datei zuweisen, und stellt sie zum Öffnen, Lesen oder Schreiben in VBA zur Verfügung.

Die Syntax für die FreeFile-Funktion lautet wie folgt:

Diese Funktion akzeptiert nur ein Argument RangeNumber mit den Standardwerten Null (0) und Eins (1). Wenn Sie Null angeben, wird die Dateinummer für jede Datei, die Sie öffnen, schrittweise durch den Nummernbereich 1 bis 255 zugewiesen. Wenn Sie eine angeben, wird die Dateinummer für jede geöffnete Datei schrittweise im Bereich von 256 bis 511 zugewiesen. Wenn keine RangeNumber angegeben ist, wird standardmäßig Null berücksichtigt.

Wie verwende ich die FreeFile-Funktion in Excel VBA?

Im Folgenden sind die verschiedenen Beispiele für die Verwendung der FreeFile-Funktion in Excel VBA aufgeführt.

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

VBA FreeFile - Beispiel # 1

Führen Sie die folgenden Schritte aus, um die FreeFile-Funktion in Excel VBA zu verwenden.

Schritt 1: Öffnen Sie einen neuen Visual Basic-Editor (VBE), indem Sie auf die Schaltfläche Visual Basic auf der Registerkarte Entwickler in Ihrer Excel-Datei klicken oder gleichzeitig Alt + F11 drücken.

Schritt 2: Setzen Sie ein neues Modul in die VBE ein. Klicken Sie auf die Schaltfläche Einfügen . Wählen Sie Modul aus der Liste der verfügbaren Optionen in Einfügen.

Schritt 3: Definieren Sie eine neue Unterprozedur, die Ihr Makro enthalten kann.

Code:

 Sub Example_1 () End Sub 

Schritt 4: Definieren Sie zwei neue Variablen, file_1 und file_2, als Ganzzahl. Diese beiden Variablen enthalten die Nummern, die wir jeder Datei zuweisen, die wir im gesamten Makro öffnen.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Schritt 5: Verwenden Sie den Zuweisungsoperator, um der Variablen file_1 mit Hilfe von VBA FreeFile den ganzzahligen Wert 1 zuzuweisen.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile End Sub 

Schritt 6: Verwenden Sie jetzt die Open- Anweisung, mit der Sie eine Datei in VBA öffnen können.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Öffnen Sie "D: \ Excel Content Writing \ TextFile_1.txt" für die Ausgabe als Datei_1 End Sub 

Hier haben wir den Pfad angegeben, in dem sich die Datei befindet. Die For-Anweisung gibt Ihnen Optionen, wie Sie die Datei öffnen möchten (zum Beispiel als Ausgabe), und die As-Anweisung gibt die Dateinummer an, die wir mit der FreeFile-Anweisung angegeben haben.

Schritt 7: Befolgen Sie die Schritte 5 und 6, um der zweiten Datei über die Variable file_2 eine neue Nummer zuzuweisen, und öffnen Sie sie.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel-Inhaltsschreiben \ TextFile_1.txt" für die Ausgabe As file_1 file_2 = FreeFile Open "D: \ Excel-Inhaltsschreiben \ TextFile_2.txt" für die Ausgabe Als file_2 End Sub 

Schritt 8: Nun möchten wir die Nummern sehen, die tatsächlich beiden Textdateien zugeordnet sind. Sie können jede Zeile einzeln mit Hilfe der Taste F8 ausführen. Die Ausgabe ist jedoch für Sie nicht sichtbar. Weder in der Excel-Datei noch im Direktfenster. Fügen Sie die folgende MsgBox- Anweisung hinzu, die ein Meldungsfeld mit den Nummern für jede Datei anzeigt.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel-Inhaltsschreiben \ TextFile_1.txt" für die Ausgabe As file_1 file_2 = FreeFile Open "D: \ Excel-Inhaltsschreiben \ TextFile_2.txt" für die Ausgabe Als Datei_2 MsgBox "Wert für Datei_1 ist:" & Datei_1 & Chr (13) & "Wert für Datei_2 ist:" & Datei_2 End Sub 

In dieser Codezeile enthält die erste Zeile des Meldungsfelds den Text „value for file_1 is:“ und den numerischen Wert, der mit der FreeFile-Funktion zugewiesen wurde. Chr (13) lässt die nächste Zeile erscheinen. In der nächsten Zeile des Meldungsfelds wird "Wert für Datei_2 ist:" und die der zweiten Datei zugewiesene Nummer angezeigt.

Schritt 9: Führen Sie diesen Code aus, indem Sie auf die Schaltfläche Ausführen klicken oder die Taste F5 drücken.

Auf diese Weise können Sie mit der FreeFile-Funktion die Nummer der Datei zuweisen, die Sie in VBA öffnen, lesen und schließen möchten.

VBA FreeFile - Beispiel # 2

Wenn wir die Datei schließen, die wir jedes Mal öffnen, hat die neue Datei, die wir öffnen, bei jedem Öffnen immer eine Seriennummer von 1. Befolgen Sie die nachstehenden Schritte, um es durchzugehen.

Schritt 1: Definieren Sie eine neue Unterprozedur, die Ihr Makro enthalten kann.

Code:

 Sub Example_2 () End Sub 

Schritt 2: Definieren Sie zwei Variablen file_1 und file_2 als Ganzzahl in der neu definierten Unterprozedur.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Schritt 3: Verwenden Sie nun FreeFile, um der angegebenen Datei eine Nummer zuzuweisen, und die Open- Anweisung, um diese Datei über den Speicherort zu öffnen, an dem sie gespeichert ist.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Öffnen Sie "D: \ Excel Content Writing \ TextFile_1.txt" für die Ausgabe als Datei_1 End Sub 

Schritt 4: Verwenden Sie eine MsgBox-Anweisung, um ein Meldungsfeld für die Nummer der ersten Dateien hinzuzufügen.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Öffnen Sie "D: \ Excel Content Writing \ TextFile_1.txt" für Ausgabe als Datei_1 MsgBox "Wert für Datei_1 ist:" & Datei_1 End Sub 

Schritt 5: Verwenden Sie eine Close- Anweisung, um die erste Datei zu schließen, die Sie über VBA geöffnet haben.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Öffnen Sie "D: \ Excel Content Writing \ TextFile_1.txt" für die Ausgabe als Datei_1 MsgBox "Wert für Datei_1 ist:" & Datei_1 Close file_1 End Sub 

Schritt 6: Befolgen Sie nun die gleichen Schritte wie in Schritt 5, Schritt 6, Schritt 7, jedoch für die zweite Datei. Dazu gehört das Zuweisen von Werten zur Variablen file_2 mithilfe der FreeFile-Funktion und das Öffnen mit Hilfe der Open-Anweisung, die Anzeige der Dateinummer für die zweite Datei mithilfe von MsgBox und das endgültige Schließen der zweiten Datei.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Für die Ausgabe als Datei_1 MsgBox "Wert für Datei_1 ist:" & Datei_1 Close file_1 file_2 = FreeFile Open "D : \ Excel Content Writing \ TextFile_2.txt "Für Ausgabe als Datei_2 MsgBox" Wert für Datei_2 ist: "& Datei_2 Close Datei_2 End Sub 

Schritt 7: Führen Sie diesen Code aus, indem Sie die Schaltfläche Ausführen oder F5 drücken.

Das erste Meldungsfeld stellt den Wert von Datei_1 dar, der 1 zu sein scheint. Das zweite Meldungsfeld stellt den Wert von Datei_2 dar, der ebenfalls 1 zu sein scheint. Diese Änderung ist vorhanden, da wir die Anweisung close verwendet haben, um die Dateien einzeln zu schließen. Aus diesem Grund wird beim Starten einer neuen Datei jedes Mal, wenn die alte Datei und ihre Nummer aus dem Systemspeicher entfernt werden, die nächste Datei als neue Datei mit Nummern ab 1 betrachtet.

Dinge, an die man sich erinnern sollte

  • FreeFile gibt eine eindeutige Ganzzahl für jede Datei zurück, die wir über VBA File IO öffnen, lesen und schließen.
  • FreeFile hat zwei Werte für das Argument RangeNumber (optional). Null weist normalerweise die Zahl zwischen 1 und 255 zu, und eins weist die Zahlen von 256 bis 511 zu.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA FreeFile. In diesem Abschnitt wird erläutert, wie Sie mit der FreeFile-Funktion der Datei, die Sie öffnen, lesen, schließen und in Excel VBA anzeigen möchten, die Nummer zuweisen können. Außerdem werden praktische Beispiele und eine herunterladbare Excel-Vorlage vorgestellt. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA Check File Exists | Excel-Vorlage
  2. VBA-Index außerhalb des gültigen Bereichs (Beispiele)
  3. GetObject-Funktion in Excel VBA
  4. Wie verwende ich das Zahlenformat in VBA?
  5. VBA Environ

Kategorie: