Hallo liebe VBA-Experten,
ich habe folgendes Problem, an dem ich inzwischen verzweifle. Dabei ist es unerheblich, ob ich Word 2010, 2014, 2016, 2019 oder 2022 verwende (ja, mir stehen in unserer Firma alle diese Versionen zur Verfügung).
Ich möchte einen Dokumentinhalt in ein anderes kopieren unter Beibehaltung sämtlicher Formatierungen. Folgender Code
WordBasic.StartOfDocument
WordBasic.EditSelectAll
WordBasic.EditCopy
WordBasic.FileOpen Name:=WSZ_Pfad$ + "\" + WSZDatei$
WordBasic.EditPaste <------------ Hier tritt der Fehler auf
Ist natürlich uralter Code, aber funktioniert beim Durchsteppen problemlos.
Wenn ich hingegen das Makro laufen lasse, meldet Word "Laufzeitfehler '4605': Dieser Befehl ist nicht verfügbar."
Ich kann auf Debuggen klicken, daraufhin wird mir die oben markierte Zeile gelb hinterlegt.
Anschließendes Drücken von F5 lässt das Programm weiterlaufen, das Einfügen funktioniert nun wieder problemlos.
Ich habe es versucht mit
Selection.Paste
und mit
Dim TargetDoc As Document
Set TargetDoc = Documents.Open(WSZ_Pfad$ + "\" + WSZDatei$)
TargetDoc.Content.Paste <------------ Hier tritt der Fehler auf
es kommt zu genau demselben Problem.
Dann habe ich es folgendermaßen umformuliert
Dim SourceRange As Range
Set SourceRange = ActiveDocument.Range(0, ActiveDocument.Content.End - 1)
Dim TargetDoc As Document
Set TargetDoc = Documents.Open(WSZ_Pfad$ + "\" + WSZDatei$)
TargetDoc.Range.FormattedText = SourceRange.FormattedText
Jetzt läuft zwar der Code durch, aber folgende Formatierungen sind nicht mehr vorhanden:
- Schriftart & -größe (Calibri, 11)
- Absatzformat (Abstand Nach=10, Zeilenabstand "Mehrfach", Von: 1,15)
Es werden statt der Formate der Quelldatei diejenigen der Zieldatei genommen (TimesNew Roman, 10; Abstand Nach=0, Zeilenabstand "Einfach").
Dann formatiere ich die Zieldatei um in Übereinstimmung mit dem Quelldokument (Beides nun: Calibri 11 bis "Mehrfach" 1,15).
Anschließend entsteht trotzdem wiederum das falsche Format (TimesNew Roman, 10; Abstand Nach=0, Zeilenabstand "Einfach"), wo immer das nun herkommt.
Wie kann ich die Quelldatei in die Zieldatei kopieren ohne dass sich die Formate verändern? Mit den vorherigen drei Paste-Befehl-Varianten bleibt das Format erhalten (nur stoppt er halt, und läuft doch nach F5 unbehindert weiter). Mache ich manuell Strg-A, Strg-C, Strg-V, bleiben die Formate ebenfalls erhalten.
Beim Range mit FormattedText nicht.
Was könnten die Ursachen sein? Wie könnten weitere Lösungen aussehen?
Vielen Dank im Voraus,
Alex
|