Im Folgenden an einem Programm in Excel VBA, der schreibt einen Excel-Bereich in eine CSV (Comma Separated-Wert) Textdatei suchen.

Situation:

Write Data to Text File in Excel VBA

Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

  1. 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
  1. 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.

  1. Wir initialisieren das Bereichsobjekt RNG mit dem gewählten Bereich.

Set rng = Selection
  1. 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.

  1. 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).

  1. Excel VBA schreibt den Wert einer Zelle auf die Variable Cellvalue.

cellValue = rng.Cells(i, j).Value
  1. 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).

  1. Vergessen Sie nicht beide Schleifen zu schließen.

Next j

Next i
  1. Schließen Sie die Datei.

Close #1
  1. Wählen Sie die Daten ein und klicken Sie auf den Befehlsschaltflächen auf dem Blatt.

Ergebnis:

Write Data to Text File Result