Huhu,
ich sitz hier grad rum und versuche eine Automatisierung zu programmieren, die es einem ermöglicht Daten von einer x-beliebigen Programmiersprache über VBA in ein Worddokument zu konvertieren.
Ist ja eigentlich auch grarnicht so schwer, wenn da das Wort "wenn" nicht wäre. Alles in allem ist das Programm recht einfach aufgebaut. Ich lasse mir von der einen Sprache eine *.csv Datei ausgeben mit 2 Datensätzen pro Reihe ... "%BEISPIEL%";"Hier ist ein\nZeilenumbruch!"
Ich lese das Zeilenweise ein, trenne mit Split(). Ersetze das "\n" durch ein chr(13), weil Word ja generell zwei Sonderzeichen für vbNewLin, vbCLrF sowie ein Sonderzeichen für chr(10) macht, anstatt einfach mal die Zeile zu beenden. Aber Carrige Return ist ja auch nichts böses ^^. Wenn ich nun im Worddokument nach %BEISPIEL% suche, kann ich problemlos dies durch folgenden Text ersetzen (natürlich durch alles andere auch):
Hier ist ein
Zeilenumbruch!
Nun habe ich aber eine Kopfzeile in meinem Worddokument. Genau diese soll nun automatisiert werden, so dass ich direkt über ein Skript ein Worddokument erstellen kann ohne lästiger Weise immer alles abzuschreiben. Mein ganzes schönes Programm funktioniert solang bis ich von ihm ein Zeilenumbruch fordere, denn meine Kopfzeile besteht aus einer, sehr einfach gehaltenen Tabelle. Also keine Verschachtelung oder ähnliches. Ganz plötzlich wirft er egal welche der 4 Methoden, die ich kenne um ein Absatz zu machen, nur ein Sonderzeichen aus. Warum? Irgendwo ist doch ein Fehler. Habt ihr eine alternativ Idee?
Mit lieben Grüßen Thomas
ich sitz hier grad rum und versuche eine Automatisierung zu programmieren, die es einem ermöglicht Daten von einer x-beliebigen Programmiersprache über VBA in ein Worddokument zu konvertieren.
Ist ja eigentlich auch grarnicht so schwer, wenn da das Wort "wenn" nicht wäre. Alles in allem ist das Programm recht einfach aufgebaut. Ich lasse mir von der einen Sprache eine *.csv Datei ausgeben mit 2 Datensätzen pro Reihe ... "%BEISPIEL%";"Hier ist ein\nZeilenumbruch!"
Ich lese das Zeilenweise ein, trenne mit Split(). Ersetze das "\n" durch ein chr(13), weil Word ja generell zwei Sonderzeichen für vbNewLin, vbCLrF sowie ein Sonderzeichen für chr(10) macht, anstatt einfach mal die Zeile zu beenden. Aber Carrige Return ist ja auch nichts böses ^^. Wenn ich nun im Worddokument nach %BEISPIEL% suche, kann ich problemlos dies durch folgenden Text ersetzen (natürlich durch alles andere auch):
Hier ist ein
Zeilenumbruch!
Nun habe ich aber eine Kopfzeile in meinem Worddokument. Genau diese soll nun automatisiert werden, so dass ich direkt über ein Skript ein Worddokument erstellen kann ohne lästiger Weise immer alles abzuschreiben. Mein ganzes schönes Programm funktioniert solang bis ich von ihm ein Zeilenumbruch fordere, denn meine Kopfzeile besteht aus einer, sehr einfach gehaltenen Tabelle. Also keine Verschachtelung oder ähnliches. Ganz plötzlich wirft er egal welche der 4 Methoden, die ich kenne um ein Absatz zu machen, nur ein Sonderzeichen aus. Warum? Irgendwo ist doch ein Fehler. Habt ihr eine alternativ Idee?
Code:
Private Function trennung(ersetzung As String) As String
Dim a As String 'String-Teilbereich 1
Dim b As String 'String-Teilbereich 2
'es wird nach "\n" gesucht um ein Zeilenumbruch einzufügen
Do
If InStr(ersetzung, "\n") > 0 Then
a = Left(ersetzung, (InStr(ersetzung, "\n") - 1))
b = Right(ersetzung, (Len(ersetzung) - (InStr(ersetzung, "\n") + 1)))
ersetzung = a & Chr(13) & b
End If
Loop Until (InStr(ersetzung, "\n") = 0)
trennung = ersetzung
End Function
Mit lieben Grüßen Thomas