Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array in txt.Datei schreiben

Forumthread: Array in txt.Datei schreiben

Array in txt.Datei schreiben
Maxer
Hallo Forum,
ich brauch mal wieder eure Hilfe.
ich habe eine Exceltabelle die über ein Makro automatisch mit Zahlen befüllt wird.
Die Anzahl der Zeilen und Spalten ist immer unterschiedlich.
Nun möchte ich diese Daten in eine Textdatei schreiben. Wie kann sich das machen?
Ich kenne nur diesen Weg (verkürzt) der aber nicht dynamisch ist (brauch ich aber wg. der unterschriedlichen Spalten und Zeilen)!
Set ts = FSO.CreateTextFile(pfad_db)
AnzSätze = ActiveSheet.UsedRange.Rows.Count
AnzSpalten = ActiveSheet.UsedRange.Columns.Count
ReDim P_Array(1 To AnzSätze, 1 To AnzSpalten)
For i = 1 To AnzSätze
P_Array(i, 1) = Cells(e, 1).Value
P_Array(i, 2) = Cells(e, 2).Value
P_Array(i, 3) = Cells(e, 3).Value
ts.WriteLine P_Array(i, 1) & ";" & P_Array(i, 2) & ";" & P_Array(i, 3)
e = e + 1
Next i
ts.Close
Kann mir da jemand helfen?
Gruß Ron
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
;
Anzeige

Infobox / Tutorial

Array in eine Textdatei schreiben


Schritt-für-Schritt-Anleitung

Um ein Array aus Excel in eine Textdatei zu schreiben, kannst Du das folgende VBA-Makro verwenden. Stelle sicher, dass Du die richtigen Berechtigungen hast, um Makros auszuführen.

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub ArrayInTxtDatei()
       Dim FSO As Object
       Dim ts As Object
       Dim pfad_db As String
       Dim AnzSätze As Long
       Dim AnzSpalten As Long
       Dim P_Array() As Variant
       Dim e As Long
    
       ' Pfad zur Textdatei angeben
       pfad_db = "C:\DeinPfad\deineDatei.txt"
    
       Set FSO = CreateObject("Scripting.FileSystemObject")
       Set ts = FSO.CreateTextFile(pfad_db)
    
       AnzSätze = ActiveSheet.UsedRange.Rows.Count
       AnzSpalten = ActiveSheet.UsedRange.Columns.Count
       ReDim P_Array(1 To AnzSätze, 1 To AnzSpalten)
    
       For e = 1 To AnzSätze
           For i = 1 To AnzSpalten
               P_Array(e, i) = Cells(e, i).Value
           Next i
           ts.WriteLine Join(Application.Index(P_Array, e, 0), ";")
       Next e
    
       ts.Close
    End Sub
  4. Passe den Pfad an, wo die Textdatei gespeichert werden soll.

  5. Führe das Makro aus: Drücke F5 oder wähle das Makro aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Zugriff verweigert"
    Lösung: Stelle sicher, dass Du die richtigen Berechtigungen für den Zielordner hast und dass die Datei nicht bereits geöffnet ist.

  • Fehler: "Objekt nicht gefunden"
    Lösung: Überprüfe, ob der Pfad zur Textdatei korrekt ist und die Datei existiert nicht bereits im angegebenen Verzeichnis.


Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, gibt es auch alternative Methoden, um Daten in eine Textdatei zu exportieren:

  • Export über „Speichern unter“: Du kannst die Excel-Datei im CSV-Format speichern, was einfach ist, aber weniger flexibel als ein direktes Makro.
  • Power Query: Mit Power Query kannst Du Daten aus Excel in verschiedene Formate exportieren, einschließlich Textdateien.

Praktische Beispiele

Hier sind einige Beispiele, wie Du das Makro anpassen kannst:

  • Für eine bestimmte Tabelle:

    For e = 1 To Sheets("Tabelle1").UsedRange.Rows.Count
       ' Dein Code hier
    Next e
  • Daten mit unterschiedlichen Trennzeichen: Ändere ";" in ein anderes Zeichen wie "," oder vbTab, um die Trennung der Werte zu ändern.


Tipps für Profis

  • Verwende Fehlerbehandlung: Integriere eine Fehlerbehandlungsroutine, um unerwartete Fehler elegant zu handhaben:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Verwende Option Explicit: Füge am Anfang Deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Tippfehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Textdatei korrekt erstellt wird?
Vergewissere Dich, dass der Pfad zur Datei korrekt ist und dass Du genug Speicherplatz auf Deinem Laufwerk hast.

2. Kann ich das Makro anpassen, um nur bestimmte Spalten zu exportieren?
Ja, Du kannst die Schleife anpassen, um nur die gewünschten Spalten in das Array zu schreiben und diese dann in die Textdatei zu exportieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige