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

Textzeile ersetzen VBA in txt datei

Forumthread: Textzeile ersetzen VBA in txt datei

Textzeile ersetzen VBA in txt datei
24.02.2016 10:52:32
rocketfox
Hallo finde leider überhaubt keine Beispiel für mein Beispiel im Netz bzw kann mit den die gefundene VBA infos nicht für mich ableiten.
ich möchte über VBA
eine Textdatei bearbeiten
in "Beispiel.txt" die erste Zeile mit "Beispielzeilen text" ersetzen oder eine Neue erste Zeile hinzufügen .
(es geht nicht darum ein String zu ersetzten . es muss die ganze Zeile sein)
ich hoffe mir kann jemand helfen
gruß chris

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textzeile ersetzen VBA in txt datei
24.02.2016 11:22:19
Rudi
Hallo,
Sub aaa()
Dim vntIn, strTmp As String
vntIn = "Beispielzeile"
Open "c:\test\beispiel.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strTmp
vntIn = vntIn & vbCrLf & strTmp
Loop
Close #1
Open "c:\test\beispiel.txt" For Output As #1
Print #1, vntIn
Close #1
End Sub

Gruß
Rudi
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textzeile in einer TXT-Datei mit VBA ersetzen


Schritt-für-Schritt-Anleitung

Um eine Textzeile in einer TXT-Datei mit VBA zu ersetzen, kannst du folgenden Schritten folgen:

  1. Öffne Excel und gehe zum VBA-Editor, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf VBAProject (DeineDatei) klickst und Einfügen -> Modul wählst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub ZeileErsetzen()
        Dim vntIn As String, strTmp As String
        Dim ZeilenArray() As String
        Dim i As Integer
    
        ' Die neue erste Zeile
        vntIn = "Beispielzeilen text"
    
        ' TXT-Datei öffnen
        Open "C:\test\beispiel.txt" For Input As #1
        i = 0
    
        ' Alle Zeilen einlesen
        Do While Not EOF(1)
            Line Input #1, strTmp
            ReDim Preserve ZeilenArray(i)
            ZeilenArray(i) = strTmp
            i = i + 1
        Loop
        Close #1
    
        ' TXT-Datei für Ausgabe öffnen
        Open "C:\test\beispiel.txt" For Output As #1
    
        ' Neue erste Zeile schreiben
        Print #1, vntIn
    
        ' Die restlichen Zeilen wieder hinzufügen
        For i = 0 To UBound(ZeilenArray)
            Print #1, ZeilenArray(i)
        Next i
    
        Close #1
    End Sub
  4. Ändere den Pfad in Open "C:\test\beispiel.txt" zu dem Speicherort deiner TXT-Datei.

  5. Schließe den VBA-Editor und führe das Makro ZeileErsetzen aus.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den Dateipfad. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.
  • Fehler: "Zugriff verweigert"

    • Lösung: Stelle sicher, dass die Datei nicht von einem anderen Programm geöffnet ist und dass du die notwendigen Berechtigungen hast.
  • Fehler: "Typkonflikt"

    • Lösung: Überprüfe, ob die Variablen korrekt deklariert sind. In unserem Beispiel ist vntIn ein String.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch Power Query in Excel nutzen, um Daten aus einer TXT-Datei zu importieren und zu bearbeiten. Hierbei kannst du die erste Zeile ersetzen und die Änderungen in einer neuen Datei speichern.


Praktische Beispiele

  • Beispiel 1: Erste Zeile ersetzen

    • Nutze den oben genannten Code, um eine spezifische Zeile in einer TXT-Datei zu ersetzen.
  • Beispiel 2: Neue Zeile hinzufügen

    • Ändere den Code, um die neue Zeile einfach an das Ende der Datei anzufügen, anstatt die erste Zeile zu ersetzen.

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Baue Fehlerbehandlungsroutinen in deinen Code ein, um unerwartete Probleme besser zu managen.
  • Experimentiere mit verschiedenen Dateiformaten, um die Flexibilität deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich die richtige Zeile ersetze? Du kannst die Zeilen vor dem Ersetzen in ein Array einlesen und die gewünschte Zeile gezielt ansprechen.

2. Funktioniert dieser Code in Excel 2016? Ja, der Code funktioniert in Excel 2016 und in den meisten neueren Versionen von Excel. Achte darauf, dass du die richtigen Berechtigungen für den Zugriff auf die Datei hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige