VBA FreeFile

Excel VBA FreeFile

FreeFile is a function in VBA that is available only as a VBA function not as a worksheet function. VBA FreeFile function returns the unique integer number to file which is opened and preserves the number for the next available file number.

We usually open files from our computer to either write something or to read-only, while referring to those files we must refer with a unique integer number. VBA FreeFile function allows us to determine that unique integer number to assign to opening the file to read, write, and open files using VBA.

Now take look at the syntax of OPEN statement.

OPEN [File Path Address] For [Mode to Open] As [File Number]

File Path Address: We need to mention the file address on our computer that we are trying to open.

Öffnungsmodus : Beim Öffnen der Datei müssen wir wissen, welche Art von Modell wir anwenden werden. Wir können hier drei Modi verwenden: "Eingabemodus", "Ausgabemodus" und "Anhänge-Modus".

Eingabemodus, um nur die Datei zu lesen.

Ausgabemodus zum Löschen der vorhandenen Daten und Einfügen neuer Daten.

Append-Modus zum Hinzufügen neuer Daten unter Beibehaltung der vorhandenen Daten.

Dateinummer: Mit diesem Argument können wir auf die Datei verweisen, die wir öffnen. Hier spielt die Funktion „FreeFile“ eine wichtige Rolle und gibt die eindeutige Ganzzahl zurück.

Wie verwende ich die FreeFile-Funktion in Excel VBA?

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

Schauen Sie sich nun den folgenden Code an.

Code:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Open Path für die Ausgabe als FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Open Path für die Ausgabe als FileNumber End Sub 

Lassen Sie mich nun den obigen Code dekodieren, damit Sie ihn verstehen.

Zuerst habe ich zwei Variablen deklariert.

 Pfad als Zeichenfolge dimmen, Dateinummer als Ganzzahl dimmen 

Dann habe ich den Dateipfad mit seinem Namen vergeben.

Pfad = "D: \ Artikel \ 2019 \ Datei 1.txt"

Dann habe ich für die eine weitere Variable die FREEFILE-Funktion zugewiesen.

FileNumber = FreeFile

Dann habe ich die Open-Anweisung verwendet, um die Textdatei im oben genannten Dateipfad zu öffnen.

 Öffnen Sie den Pfad für die Ausgabe als FileNumber

Ok, jetzt werde ich zeilenweise Code durch Drücken der Taste F8 ausführen und den Wert der Variablen "FileNumber" sehen.

Die Dateinummer wird als 1 angezeigt. Die freie Dateifunktion reserviert diese Nummer automatisch für die öffnende Datei. Währenddessen werden keine anderen Dateien geöffnet.

Jetzt werde ich die nächste Zeile des VBA-Codes weiter ausführen und sehen, wie die Dateinummer lautet, wenn ich zur nächsten Zeile springe.

Jetzt heißt es 2. Die FreeFile-Funktion reserviert also die eindeutige Ganzzahl 2 für die zweite Eröffnungsdatei.

Die FreeFile-Funktion gibt immer 1 zurück, wenn wir die Excel-Datei schließen

Eine Sache, die wir uns ansehen müssen, ist, dass die VBA-Funktion „FreeFile“ immer 1 zurückgibt, wenn wir die geöffnete Datei vor dem Öffnen der zweiten Excel-Datei schließen.

Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Open Path für die Ausgabe als FileNumber Close FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Open Path für die Ausgabe als FileNumber Close FileNumber End Sub 

Jetzt werde ich den Code noch einmal Zeile für Zeile ausführen, indem ich die Taste F8 drücke.

Es heißt 1 wie immer.

Jetzt werde ich zum nächsten Level übergehen.

Auch im zweiten Versuch heißt es 1.

Der Grund dafür ist, dass wir die Close file-Anweisung verwendet haben. FreeFile erkennt die neu geöffnete Datei als die neue und gibt die Ganzzahl als 1 zurück.