VBA - In Textdatei schreiben

Inhaltsverzeichnis

In diesem Tutorial wird gezeigt, wie Sie mit VBA in Textdateien schreiben.

In eine Textdatei schreiben

Die folgenden Codes verwenden die FileSystemObject. Um es zu verwenden, müssen Sie einen Verweis auf die VB-Skript-Laufzeitbibliothek festlegen.

In neue Textdatei schreiben

Mit dem Textdatei erstellen Methode von FileSystemObject Sie können eine Textdatei erstellen und dann Inhalt hinzufügen:

123456789 Sub FSOCreateAndWriteToTextFile()Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")Set FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")FileToCreate.Write "Testzeile"FileToCreate.CloseEnd Sub

Bitte beachten Sie, dass Inhalte nicht in Anführungszeichen eingeschlossen werden.

In vorhandene Textdatei schreiben

Um in eine vorhandene Textdatei zu schreiben, können Sie die OpenTextFile Methode von FileSystemObject mit Zum Schreiben Modus.

123456789 Sub FSOWriteToTextFile()Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)FileToWrite.Write "Testzeile"FileToWrite.CloseEnd Sub

Bitte beachten Sie, dass Sie FileSystemObject nicht unbedingt benötigen, um in eine vorhandene Textdatei zu schreiben. Das obige Beispiel wird in diesem Code unten auf andere Weise gezeigt (siehe anderes Beispiel im Abschnitt Datenbereich zu Textdatei):

123456789 Unter WriteToTextFile()Dim FileName As StringFileName = "C:\Test\TestFile.txt"Dateiname für Ausgabe als #1 öffnenDrucken Sie #1, "Testzeile"Schließen #1End Sub

Bitte beachten Sie, dass die Verwendung des Befehls Schreiben anstelle von Drucken dazu führt, dass der hinzugefügte Inhalt in Anführungszeichen eingeschlossen wird. Beide Befehle in Ihrem Makro haben

12 Schreiben Sie #1, "Testzeile #1"Drucken Sie #1, "Testzeile #2"

ergibt eine Textdatei wie diese:

VBA-Programmierung | Code Generator arbeitet für Sie!

An Textdatei anhängen

Durch Ändern des Modus im obigen Code in ForAppending kann am Ende der Textdatei eine Zeile hinzugefügt werden:

1 Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)

WriteLine-Methode

Diese Methode hängt die Eingabezeichenfolge als separate Zeile an den vorhandenen Inhalt an.

Schreibmethode

Die Eingabezeichenfolge wird in derselben Zeile wie der vorhandene Inhalt angehängt.

Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!

WriteBlankLines

Diese Methode verwendet als Parameter die Anzahl der Leerzeilen, die in die Textdatei geschrieben werden sollen.

Der folgende Code veranschaulicht den Unterschied zwischen den verschiedenen Schreibmethoden:

12345678910111213 Unter WriteMethods()Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)FileToWrite.Write "Testzeile #1"FileToWrite.Write "Testzeile #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "Testzeile #3"FileToWrite.WriteLine "Testzeile #4"FileToWrite.CloseEnd Sub

Und das Ergebnis:

VBA-Programmierung | Code Generator arbeitet für Sie!

Datenbereich zu Textdatei

Wenn Sie einen Datenbereich aus Ihrem Arbeitsblatt in eine Textdatei ausgeben möchten, können Sie diesen Code verwenden:

12345678910111213141516171819 UnterausgabeToTextFile()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C:\Test\TestFile.txt" 'Sie können hier den Namen der Textdatei angeben, die Sie erstellen möchtenDateiname für Ausgabe als #1 öffnenSet MyRange = Range("data") 'es geht davon aus, dass Sie einen Datenbereich namens "data" auf Ihrem Arbeitsblatt habenFür i = 1 Zu MyRange.Rows.CountFür j = 1 Zu MyRange.Columns.CountLineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) 'die erstellte Textdatei wird ein Komma-Trennzeichen habenNächstes jPrint #1, LineText 'mit dem Write-Befehl anstelle von Print führt dazu, dass Ihre Daten in der Ausgabetextdatei in Anführungszeichen stehenAls nächstesSchließen #1End Sub

Array in Textdatei

Sie können Ihr Datenarray auch in einer Textdatei wie folgt speichern:

12345678910111213141516 Sub SaveArrayToTextFile()Dim MyArray als VarianteDim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")MyArray = Array(Array("00", "01"), Array("10", "11"), Array("20", "21"))Set FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")Für n = 0 an UBound(MyArray)FileToCreate.WriteLine MyArray(n)(0) & "," & MyArray(n)(1)NächsteFileToCreate.CloseEnd Sub

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave