Zeilenschaltungen gehen bei Zuweisung verloren.

04/08/2008 - 21:03 von Frank Spade | Report spam
Guten Tag,

ich versuche mit Makros Formulare zu befüllen und komme damit auch schon
ganz gut zurecht. Nun will ich ein zweites Formular mit der gleichen Adresse
befüllen wie das Erste und die Zeilenschaltungen werden nicht beachtet. Wenn
ich den String analysiere sind Chr(13)s an den richtigen Stellen. Der String
wird aber in einer Zeile dargestellt. Die Anschrift wird per manueller
Selektion aus dem Anschriftenfeld von Outlook geholt.

Hier ist mein Kode:

Sub AutoNew()
Dim Anschrift As DataObject
Set Anschrift = New DataObject
Anschrift.GetFromClipboard
ActiveDocument.FormFields("Anschrift").Result =
Replace(Anschrift.GetText, Chr(10), "")

Sub PINLabelDrucken()
' Makro Alt-P
Dim PINLabelDoc, MainDoc As Document
Set MainDoc = ActiveDocument
Documents.Add "C:\Documents\Broschürenversand\PIN AG
Paketaufkleber.dot", False, , True
Set PINLabelDoc = ActiveDocument
PINLabelDoc.FormFields("Anschrift").Result =
MainDoc.FormFields("Anschrift").Result
End Sub

Ich habe verschiedene andere Lösungen ausprobiert aber ohne Erfolg;
einschließlich erneutem (dazu hatte ich Anschrift global definiert):

Anschrift.GetFromClipboard
ActiveDocument.FormFields("Anschrift").Result =
Replace(Anschrift.GetText, Chr(10), "")

Das Ergebnis war immer gleich.

Ich bitte um sachdienliche Hinweise. Danke.

Herzlichen Gruß

Frank
 

Lesen sie die antworten

#1 Hartwig Constien
06/08/2008 - 09:11 | Warnen spam
"Frank Spade" schrieb:

ich versuche mit Makros Formulare zu befüllen und komme damit auch schon
ganz gut zurecht. Nun will ich ein zweites Formular mit der gleichen Adresse
befüllen wie das Erste und die Zeilenschaltungen werden nicht beachtet. Wenn
ich den String analysiere sind Chr(13)s an den richtigen Stellen. Der String
wird aber in einer Zeile dargestellt. Die Anschrift wird per manueller
Selektion aus dem Anschriftenfeld von Outlook geholt.

Hier ist mein Kode:

Sub AutoNew()
Dim Anschrift As DataObject
Set Anschrift = New DataObject
Anschrift.GetFromClipboard
ActiveDocument.FormFields("Anschrift").Result =
Replace(Anschrift.GetText, Chr(10), "")

Sub PINLabelDrucken()
' Makro Alt-P
Dim PINLabelDoc, MainDoc As Document
Set MainDoc = ActiveDocument
Documents.Add "C:\Documents\Broschürenversand\PIN AG
Paketaufkleber.dot", False, , True
Set PINLabelDoc = ActiveDocument
PINLabelDoc.FormFields("Anschrift").Result =
MainDoc.FormFields("Anschrift").Result
End Sub

Ich habe verschiedene andere Lösungen ausprobiert aber ohne Erfolg;
einschließlich erneutem (dazu hatte ich Anschrift global definiert):

Anschrift.GetFromClipboard
ActiveDocument.FormFields("Anschrift").Result =
Replace(Anschrift.GetText, Chr(10), "")

Das Ergebnis war immer gleich.



Hallo Frank,

ich habe Dein Beispiel nicht nachgestellt. Beim Überfliegen des Codes fàllt
mir nur auf, dass Du den Zeilenvorschub LF extra herausfilterst. Übrig bleibt
dann wohl nur noch der Wagenrücklauf CR. Eigentlich dürften alle
Systemprogramme einen korrekten Zeilenumbruch nur dann anzeigen, wenn beide
Anweisungen vorhanden sind. Bei Strings oder umbrechenden Textfeldern gibt es
aber keine definierten Zeilenanfànge, so dass hier auch CR oder LF alleine
ausreichen können. Das Word-interne Kopieren ist da vielleicht nur
pingelieger und übergeht einzelne CRs.

Was passiert, wenn Du LF nicht herausfilterst sondern dafür sorgst, dass
immer CRLR enthalten ist?

Hang loose, Hartwig

Ähnliche fragen