Schreiben von Daten in eine Textdatei mit Excel VBA
Im Folgenden an einem Programm in Excel VBA, der schreibt einen Excel-Bereich in eine CSV (Comma Separated-Wert) Textdatei suchen.
Situation:
Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:
-
Erstens haben wir eine Variable namens myFile vom Typ String deklarieren, ein Objekt rng vom Typ Range, eine Variable namens Cellvalue vom Typ Variant genannt, eine Variable namens i vom Typ Integer und eine Variable j vom Typ Integer genannt. Wir verwenden einen Variant-Variable hier, weil ein Variant-Variable jede Art von Wert halten kann.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
-
Wir müssen den vollständigen Pfad und den Dateinamen der Datei angeben.
myFile = Application.DefaultFilePath & "\sales.csv"
Hinweis: Die DefaultFilePath Eigenschaft gibt den Standard-Dateipfad. Um den Standard-Speicherort zu ändern, auf der Registerkarte Datei auf Optionen, Speicher.
-
Wir initialisieren das Bereichsobjekt RNG mit dem gewählten Bereich.
Set rng = Selection
-
Folgende Codezeile hinzu:
Open myFile For Output As #1
Hinweis: Diese Anweisung ermöglicht es in die Datei geschrieben werden. Wir können als # 1 während der Rest unseres Code in die Datei verweisen. Wenn die Datei bereits vorhanden ist, wird es mit dem gleichen Namen wird erstellt gelöscht und eine neue Datei werden.
-
Double Loop starten.
For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count
Anmerkung: rng.Rows.Count gibt die Anzahl der Reihen (17 in diesem Beispiel) und rng.Columns.Count gibt die Anzahl der Spalten (4 in diesem Beispiel).
-
Excel VBA schreibt den Wert einer Zelle auf die Variable Cellvalue.
cellValue = rng.Cells(i, j).Value
-
die folgenden Codezeilen Fügen Sie den Wert von Cellvalue in die Textdatei zu schreiben.
If j = rng.Columns.Count Then Write #1, cellValue Else Write #1, cellValue, End If
Erläuterung: Aufgrund der If Then Else-Anweisung, Excel VBA startet nur eine neue Zeile (Write # 1, Cellvalue), wenn j die Anzahl der Spalten (letzter Wert in einer Reihe) entspricht. Zur Trennung der Werte mit einem Komma, verwenden Sie schreiben # 1, Cellvalue, (mit einem Komma).
-
Vergessen Sie nicht beide Schleifen zu schließen.
Next j Next i
-
Schließen Sie die Datei.
Close #1
-
Wählen Sie die Daten ein und klicken Sie auf den Befehlsschaltflächen auf dem Blatt.
Ergebnis: