Anzeige
Archiv - Navigation
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formatiert in Textfile schreiben

Formatiert in Textfile schreiben
08.05.2006 11:41:05
andS
Hallo Forum,
wie schreibe ich formatiert in eine Textdatei?
Verwende zum Schreiben folgenden Code:

Sub WriteFile()
Cells(4, "A").End(xlToRight).Select
endeCol = Selection.Column
Cells(4, "G").End(xlDown).Select
endeRow = Selection.Row
Open "c:\tmp\Textdatei.txt" For Output As #1
For z = 5 To endeRow
For j = 1 To endeCol
'        If Cells(z, j).Value = "" Then
'        End If
s = Cells(z, j).Value & "|"
temp = temp + s
Next j
Write #1, "DATA   |" & temp
temp = ""
Next z
Close #1
End Sub

Ich möchte eine Ausgabe in der Form:
DATA | 123| Test| dies ist ein Bsptest|
erreichen.
Mein Problem liegt darin, dass manche Spalten auch leer sein können. Dann erhalte ich einfach |||...
Es sollte aber immer die gleiche Formatierung vorliegen.
Eine Idee von mir wäre immer die Länge zu prüfen, falls diese Null ist, einfach mit Leerzeichen in dem String zu arbeiten. Dies müßte ich dann allerdings für 85 Spalten machen...
Gibt's dafür ne einfachere Lösung?
Grüße Andi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatiert in Textfile schreiben
08.05.2006 17:27:53
Erich
Hallo Andi,
probier mal
Sub WriteFile()
Dim endeCol%, endeRow&, strW$, strZ$, maxLen() As Integer, zz&, sp&
endeCol = Cells(4, "A").End(xlToRight).Column
endeRow = Cells(4, "G").End(xlDown).Row
ReDim maxLen(0 To endeCol)
For sp = 1 To endeCol
maxLen(sp) = Evaluate("=MAX(LEN(" & Cells(5, sp).Address() & ":" & _
Cells(endeRow, sp).Address() & "))")
Next sp
Open "c:\tmp\Textdatei.txt" For Output As #1
For zz = 5 To endeRow
strZ = "DATA   |"
For sp = 1 To endeCol
strW = Cells(zz, sp)
If Len(strW) < maxLen(sp) Then strW = String(maxLen(sp) - Len(strW), " ") & strW
strZ = strZ & " " & strW & "|"      ' wenn Leerzeichen vor dem Wert
'       strZ = strZ & strW & "|"       ' wenn kein Leerzeichen vor dem Wert
Next sp
'    Print #1, strZ                   '  mit " im Textfile
Write #1, strZ                   ' ohne " im Textfile
Next zz
Close #1
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige