VBA Write Text File

Excel VBA Textdatei schreiben

In VBA können wir eine Textdatei öffnen oder lesen oder schreiben. Eine Textdatei zu schreiben bedeutet, dass die Daten, die wir in einem Excel-Blatt haben, und wir möchten, dass sie in eine Textdatei oder eine Notizblockdatei umgewandelt werden. Es gibt zwei Methoden, eine davon Verwenden der Dateisystem-Objekteigenschaft von VBA und einer anderen mithilfe der Open and Write-Methode in VBA.

In den meisten Unternehmen versuchen die Unternehmen nach Fertigstellung des Berichts, den Bericht in die Datenbank hochzuladen. Zum Hochladen in die Datenbank verwenden sie das Format „Textdateien“, um die Datenbank zu aktualisieren. Normalerweise kopieren wir die Daten aus Excel und fügen sie in eine Textdatei ein. Der Grund, warum wir uns auf Textdateien verlassen, weil diese aufgrund ihrer leichten und einfacheren Methoden sehr einfach zu bearbeiten sind. Durch die Verwendung der VBA-Codierung können wir das Kopieren von Daten aus einer Excel-Datei in eine Textdatei automatisieren. In diesem Artikel zeigen wir Ihnen, wie Sie mit VBA-Code Daten aus einer Excel-Datei in eine Textdatei kopieren oder schreiben.

Wie schreibe ich Daten mit VBA in Textdateien?

Das Schreiben von Daten von Excel in Text ist eine komplexe Codierung und erfordert sehr gute Kenntnisse der VBA-Codierung. Führen Sie die folgenden Schritte aus, um den VBA-Code zum Kopieren von Daten aus Excel in eine Textdatei zu schreiben.

Bevor ich Ihnen den Weg zum Schreiben des Codes zeige, möchte ich Ihnen erklären, wie Sie die Textdatei mithilfe einer open-Anweisung öffnen.

Syntax der geöffneten Textdatei

Öffnen Sie [Dateipfad] für [Modus] als [Dateinummer].

Dateipfad : Der Pfad der Datei, die wir auf dem Computer öffnen möchten.

Modus: Der Modus ist die Kontrolle, die wir über das Öffnen von Textdateien haben können. Wir können drei Arten der Kontrolle über die Textdatei haben.

  • Eingabemodus: Dies schlägt eine schreibgeschützte Steuerung der öffnenden Textdatei vor. Wenn wir den „Eingabemodus“ verwenden, können wir mit der Datei nichts anfangen. Wir können nur den Inhalt der Textdatei lesen.
  • Ausgabemodus: Mit dieser Option können wir den Inhalt darauf schreiben. Der Punkt, an den wir uns hier erinnern müssen, ist, dass alle vorhandenen Daten überschrieben werden. Wir müssen uns also vor dem möglichen Verlust alter Daten hüten.
  • Append-Modus: Dieser Modus ist das Gegenteil des OutPut-Modus. Mit dieser Methode können wir die neuen Daten tatsächlich am Ende der vorhandenen Daten in die Datei schreiben.

Dateinummer: Hiermit wird die Textdateinummer aller geöffneten Textdateien gezählt. Dadurch werden die geöffneten Dateinummern in ganzzahligen Werten von 1 bis 511 erkannt. Das Zuweisen der Dateinummer ist schwierig und führt zu großer Verwirrung. Hierfür können wir die kostenlose Dateifunktion verwenden.

Free File gibt die eindeutige Nummer für die geöffneten Dateien zurück. Auf diese Weise können wir die eindeutige Dateinummer ohne doppelte Werte zuweisen.

Sie können diese VBA Write Text File-Vorlage hier herunterladen - VBA Write Text File Template

Beispiel 1

Führen Sie die folgenden Schritte aus, um den Code zum Erstellen einer neuen Textdatei zu schreiben.

Angenommen, Sie haben bereits eine Textdatei mit dem Namen "Hello.txt" in Ihrem Computerspeicher und wir zeigen Ihnen, wie Sie die Daten darin schreiben.

Schritt 1: Variable deklarieren

Deklarieren Sie die Variable, die den Dateipfad als Zeichenfolge enthält.

Code:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Schritt 2: Bestimmen Sie die Dateinummer

Um festzustellen, auf welche Dateinummer wir uns beziehen, deklarieren Sie eine weitere Variable als Integer.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

Schritt 3: Dateipfad zuweisen

Weisen Sie nun für die Variable Pfad den Dateipfad mit einem Dateinamen zu.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel-Dateien \ VBA-Datei \ Hello.txt" 'Ändern Sie den Pfad gemäß Ihrer Anforderung End Sub 

Schritt 4: Freie Dateifunktion zuweisen

Weisen Sie nun für die Variable Dateinummer die Funktion "Freie Datei" zu, um eine eindeutige Dateinummer zu speichern.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel-Dateien \ VBA-Datei \ Hello.txt" 'Ändern Sie den Pfad gemäß Ihren Anforderungen FileNumber = FreeFile End Sub 

Schritt 5: Öffnen Sie die Textdatei

Jetzt müssen wir die Textdatei öffnen, um damit arbeiten zu können. Wie ich erklärt habe, müssen wir die OPEN-Anweisung verwenden, um die Textdatei zu öffnen.

Schritt 6: Verwenden Sie die Druck- / Schreibmethode

Sobald die Datei geöffnet ist, müssen wir etwas darin schreiben. Um in die Textdatei zu schreiben, müssen wir entweder die Methode "Schreiben" oder "Drucken" verwenden.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel-Dateien \ VBA-Datei \ Hello.txt" 'Ändern Sie den Pfad gemäß Ihren Anforderungen. FileNumber = FreeFile Open Path für die Ausgabe als FileNumber Print #FileNumber, " Willkommen bei "Print #FileNumber" bei "Print #FileNumber," VBA "End Sub 

Zuerst müssen wir die Dateinummer erwähnen (hier haben wir die Datei über die Variable "FileNumber" zugewiesen), dann müssen wir den Inhalt hinzufügen, den wir einer Textdatei hinzufügen möchten.

Schritt 7: Speichern und Schließen der Textdatei

Sobald der Inhalt in eine Textdatei geschrieben ist, müssen wir die Textdatei speichern und schließen.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel-Dateien \ VBA-Datei \ Hello.txt" 'Ändern Sie den Pfad gemäß Ihren Anforderungen FileNumber = FreeFile Open Path für die Ausgabe als FileNumber Print #FileNumber, " Willkommen "Print #FileNumber", to "Print #FileNumber," VBA "Schließen Sie FileNumber End Sub 

Führen Sie nun den Code manuell oder über die Excel-Tastenkombination F5 aus, um den genannten Inhalt in die angegebene Textdatei zu schreiben.

Beispiel 2

Jetzt werden wir sehen, wie die Daten des Excel-Blattes in eine Textdatei geschrieben werden.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.