Wie erstelle und schreibe ich mit vba eine textdatei?
Um Text mit VBA-Code zu erstellen, müssen Sie die Methode CreateTextFile verwenden. Mit dieser Methode können Sie einen Ort festlegen, an dem Sie es erstellen möchten. Diese Methode verfügt über eine Syntax, mit der Sie angeben können, ob Sie die Datei am Speicherort überschreiben möchten und ob die Datei als Unicode- oder ASCII-Datei erstellt wird.
Erstellen Sie eine Textdatei mit VBA
Führen Sie die folgenden Schritte aus:
- Zunächst müssen Sie ein FileSystemObject- oder Folder-Objekt verwenden, um es mit der Methode zu verwenden.
- Danach müssen Sie mit der Methode CreateTextFile ein weiteres Objekt erstellen.
- In diesem Code haben wir TRUE zum Überschreiben verwendet, wenn sich im Ordner bereits eine Datei mit demselben Namen befindet.
- Wenn Sie dieses Makro abschließend ausführen, erstellen Sie wie folgt eine neue Textdatei im Ordner.
Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub
Syntax der CreateTextFile-Methode
CreateTextFile (filename, [ overwrite, [ unicode ]])
- Dateiname: Pfad und Name der Datei, die Sie erstellen möchten.
- überschreiben: Boolescher Wert, um zu definieren, ob Sie die Datei überschreiben möchten (falls sie bereits vorhanden ist) (optional).
- unicode: boolescher Wert, um zu definieren, ob die Datei als Unicode- oder ASCII-Datei erstellt wird (optional).
Schreiben Sie mit VBA in eine Textdatei
Sie können zwei Anweisungen verwenden, um Daten in eine Textdatei zu schreiben:
- Schreiben: Mit dieser Anweisung können Sie Daten in eine Textdatei schreiben, in der Sie Kommas zwischen Werten, Anführungszeichen um Zeichenfolgen und #-Zeichen um Datumsangaben setzen.
- Drucken: Mit dieser Anweisung können Sie Daten in eine Textdatei schreiben, die genau so aussieht wie in der Excel-Tabelle.
Jetzt werden wir uns Beispiele für beide Anweisungen ansehen und verstehen, wie man vollständigen Code schreibt, um ihn in eine Textdatei zu schreiben. Zuvor müssen Sie jedoch einige Terminologien verstehen, um den Code wie gewünscht zu schreiben.
- Für die Ausgabe: Sie können diesen Befehl verwenden, wenn Sie Daten schreiben oder Daten in einer Textdatei ändern möchten.
- Zur Eingabe: Mit diesem Befehl können Sie Daten aus einem Text extrahieren, aber Sie können die Datei nicht ändern und keine Daten hinzufügen.
- Hinzufügen: Mit diesem Befehl können Sie am Ende der Textdatei neue Daten hinzufügen.
- FreeFile: Damit können Sie eine Dateinummer festlegen, die nicht für die Textdatei verwendet wird, die Sie verwenden möchten, damit Sie darauf verweisen können.
Schreiben wir nun einen Code zum Eingeben von Daten in eine Textdatei.
- Zuerst müssen Sie die Variablen deklarieren, die im Code verwendet werden sollen.
- Danach müssen Sie den Bereich definieren, den Sie in die Textdatei schreiben möchten. Und verwenden Sie die Anzahl der Zellen im Bereich als Zähler für die Schleife, indem Sie sie auf eine Variable setzen.
- Als nächstes müssen Sie die Adresse der Textdatei festlegen, zu der Sie Daten hinzufügen möchten.
- Von dort aus müssen Sie den Befehl „FreeFile“ einer Variablen deklarieren, um die Dateinummer zu erhalten.
- Jetzt müssen Sie mit dem Befehl „Ausgabe“ erstellen, da Sie der Datei Daten hinzufügen müssen.
- Schließlich müssen Sie die „For Next“-Schleife verwenden, um die Bereichswerte einzeln abzurufen und zur Datei hinzuzufügen.
- Darüber hinaus müssen Sie den Befehl „Schließen“ verwenden, um die Textdatei zu schließen, nachdem die Daten hinzugefügt wurden.
- Wenn Sie dieses Makro ausführen, fügt es letztendlich Daten aus dem Bereich A1:A13 zu der Textdatei hinzu, die Sie im angegebenen Pfad gespeichert haben.
Hinweis: Stellen Sie sicher, dass Sie den Pfad der Textdatei im Code entsprechend dem Pfad ändern, den Sie in Ihrem System haben.
Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub