alex-tech
Goto Top

VBA Textdatei zeilenweise schreiben

VBA Textdatei zeilenweise schreiben mit Schleife

Hallo,

ich erstelle aus Excel/VBA eine Textdatei und schreibe was rein, soweit funktioniert das auch. Aber jetzt möchte ich mit einer Schleife ein sich ändernder String nacheinander in die zeilen schreiben:

Funktioniert:

Open Textdatei.txt For Output As #1

Print #1 String

Close #1


So soll es sein:

Open Textdatei.txt For Output As #1

For i = 1 to 10

Print #1 String ' Schreibe in Zeile(i)

String = irgendwas
Next

Close #1


Geht das Irgendwie?

Kann mir jemand helfen?


Vielen Dank im Voraus.


Viele Grüße,

alex

Content-ID: 164130

Url: https://administrator.de/forum/vba-textdatei-zeilenweise-schreiben-164130.html

Ausgedruckt am: 23.12.2024 um 12:12 Uhr

bastla
bastla 07.04.2011 um 10:33:41 Uhr
Goto Top
Hallo alex-tech!

Woher bekommst Du denn Deine sich ändernden Strings (weil 10 x "irgendwas" in der Textdatei ist vermutlich auch nicht im Sinne des Erfinders)?

Grüße
bastla
alex-tech
alex-tech 07.04.2011 um 10:42:05 Uhr
Goto Top
Der String ist nur als Beispiel. Der String wird an anderer Stelle mit der Split funktion aus mehreren Zellen in der Exceltabelle zusammengesetzt. In der Schleife werden dann noch weiter daten wie Uhrzeiten hinzugefügt.

Das funktioniert auch, nur das in meiner Textdatei immer nur der letzte Schleifendurchgang in der ersten Zeile der Textdatei steht.
bastla
bastla 07.04.2011 um 11:23:45 Uhr
Goto Top
Hallo alex-tech!

Abgesehen davon, dass ich zuerst den Wert zuweisen und dann ausgeben würde, sehe ich eigentlich kein Problem ...
Open "D:\Textdatei.txt" For Output As #1  

For i = 1 To 10
    strString = "irgendwas " & i  
    Print #1, strString ' Schreibe in Zeile(i) 
Next
Close #1
Grüße
bastla

P.S.: Da Du vermutlich schon danach gesucht hast:
alex-tech
alex-tech 07.04.2011 um 13:22:16 Uhr
Goto Top
Danke,

aber wenn er das zweite Mal die Schleife durchläuft, überschreibt er ja die Ausgabe der ersten. Er soll aber die zweite Ausgabe in die nächste Zeile setzten.
vossi31
vossi31 07.04.2011 um 14:39:23 Uhr
Goto Top
Hallo alex-tech,

so wie bastler es schreibt muss es funktionieren.
Vielleicht hast du kein Schreib/Löschrecht und guckst dir immer die gleiche (alte) Ausgabedatei an.

Henning
alex-tech
alex-tech 08.04.2011 um 13:18:58 Uhr
Goto Top
Mmh, nein, ich erzeuge diese textdatei ja auch erst mit dem Open Befehl.
Irgendwie muss ich dem Print doch sagen in welche Zeile er den Strring Schreiben soll.

Ich habe da den Befehl Printline gefunden, weiß aber nicht so genau wie ich den einsetzen muss und ob das überhaupt damit geht.

Gruß
vossi31
vossi31 08.04.2011 um 14:45:58 Uhr
Goto Top
Das Programm von bastler macht genau das was du haben willst.

"Printline" kennt mein Excel2000/VBA nicht. Es gibt außer "print#" noch "write#" - das wird dir aber nicht helfen, da du in deinem Gesamtablauf einen Fehler haben wirst. Kannst ja mal den Debugger einschalten oder poste mal dein Programm.

Henning
bastla
bastla 08.04.2011 um 15:00:36 Uhr
Goto Top
Hallo alex-tech!
Irgendwie muss ich dem Print doch sagen in welche Zeile er den Strring Schreiben soll.
Es wird einfach immer in die nächste Zeile geschrieben ...
Ich habe da den Befehl Printline gefunden
Es gibt für das "FileSystemObject" ein "WriteLine", was "Print#" entspricht, während "Write" eine Zeile ohne abschließende Zeilenschaltung erzeugt - also auch hier nicht: "Schreibe in die Zeile Nr x" ...
Wenn du etwas genauer beschreibst, was Du nun eigentlich wo in der Zieldatei haben möchtest, können wir ja an der passenden Ausgaberoutine "basteln" (obwohl ich - @vossi31 - meinen Nick nicht extra dafür ändern würde face-wink ...

Grüße
bastla