Discussion:
FormattedText von einem in ein anderes Dokument kopieren per Excel-Makro
(zu alt für eine Antwort)
Herr Mann
2014-07-12 18:09:35 UTC
Permalink
Hallo, ich bitte um kundige Hilfe.
Ich arbeite mit Office 2010 und ich möchte einige Word-Dokumente mit einem Excel-Makro steuern:
Zunächst wird ein Document "FormularDatei" mit einem umfänglichen Inhalt (einige Zeilen, Logo, eine lange Tabelle) geöffnet. Dann wird ein leeres Dokument geöffnet.
Im Folgenden soll der komplette Inhalt von FormularDatei in das leere Dokument kopiert werden und zwar mehrfach, immer ans Ende.

Ich habe bereits zwei Variablen
FormularDatei
AusdrucksDatei
vom Typ Word.Document, die jeweils beim Öffnen der Dateien gesetzt worden sind.

gut klappt:
AusdrucksDatei.Range.FormattedText = FormularDatei.Range.FormattedText

Damit kann ich den Inhalt von FormularDatei aber nur einmal übertragen.
Für jedes weitere Mal brauchte ich eine Formulierung wie:

AusdrucksDatei.Range.FormattedText.InsertAfter FormularDatei.Range.FormattedText

Das klappt auch, aber die Formatierung wird nicht mitübertragen.
Wie kann ich das erreichtn?
Besten Dank und Gruß, Christian.
Rainer H. Rauschenberg
2014-07-14 11:11:32 UTC
Permalink
Post by Herr Mann
AusdrucksDatei.Range.FormattedText = FormularDatei.Range.FormattedText
Damit kann ich den Inhalt von FormularDatei aber nur einmal übertragen.
AusdrucksDatei.Range.FormattedText.InsertAfter FormularDatei.Range.FormattedText
Nein, Du brauchst einen Range im Zieldokument, der weniger als das ganze
Dokument umfasst.

AusdrucksDatei.Range(AusdrucksDatei.Range.End,AusdrucksDatei.Range.End).FormattedText = FormularDatei.Range.FormattedText

Rainer "aus dem Gedächtnis, nicht ausprobiert" Rauschenberg
Herr Mann
2014-07-14 22:32:35 UTC
Permalink
Post by Rainer H. Rauschenberg
Nein, Du brauchst einen Range im Zieldokument, der weniger als das ganze
Dokument umfasst.
AusdrucksDatei.Range(AusdrucksDatei.Range.End,AusdrucksDatei.Range.End).FormattedText = FormularDatei.Range.FormattedText
Großartig, besten Dank, das funktioniert gut.
Zunächst bekomme ich die Fehlermeldung "...nicht im Definitionsbereich", die sich offenbar darauf bezieht, dass Start und End gleich sind.
Sage ich: AusdrucksDatei.Range(AusdrucksDatei.Range.End -1,AusdrucksDatei.Range.End).FormattedText = FormularDatei.Range.FormattedText
klappt das wunderbar.
Besten Dank und beste Grüße, Christian Hahn.

Loading...