|
| Autor |
Nachricht |
WhiteGloves Newbie

Anmeldedatum: 02.06.2008 Beiträge: 7
|
Word, Tabelle in der Kopfzeile auslesen
Verfasst am: 04.07.2008, 11:51 |
|
|
** Edit **
Hallo,
mein Problem hat sich geändert, da ich gemerkt habe das ich auf dem falschen Weg bin.
Ich muss ein Word Dokument öffnen und den gesamten Inhalt der Kopfzeile auslesen und in die Kopfzeile eines anderen Dokumentes einfügen.
In der (auszulesenden) Kopfzeile befindet sich eine Tabelle welche einige dieser "Felder" enthält.
Kopiere ich nun den Inhalt in die andere Kopfzeile, ist erstens die in der Orginalen enthaltene Tabelle verschwunden, sowie die Felder ebenfalls, bzw die Feldbezeichnung bleibt vorhanden, aber es ist eben kein Feld mehr....
Ich hab auch leider keinen Plan wie ich dies Problem lösen kann.
Ich arbeite übrigens mit VB 6.0 und vermute das mein Problem sich mit VBA besser Lösen ließe, will dies allerdings nur als wirklich letze Ausweichmöglichkeit verwenden !
Hier ist mein momentaner Code: Visual Basic: [code]'Hole den Inhalt der Kopfzeile der Vorlage (Orginal Dokument) Set objWordVorlage = CreateObject("Word.Application") objWordVorlage.Documents.Open "L Gesamt.doc" Set KopfzeileVorlage = objWordVorlage.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range ' KopfzeileVorlage.Text Hier hab ich ja jetzt den Inhalt der Kopfzeile Set objWord = CreateObject("Word.Application") objWord.Documents.Open "svorschlag.doc" Set Kopfzeile = objWord.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range 'jetzt einfach kopieren... Kopfzeile.Text = KopfzeileVorlage.Text[/code] |
|
| |
|
 |
WhiteGloves Newbie

Anmeldedatum: 02.06.2008 Beiträge: 7
|
Verfasst am: 07.07.2008, 10:38 |
|
|
** Edit, Problem gelößt... Siehe unten ! ___________________________
Inzwischen hat sich mein Quelltext etwas verändert, versuche die Sache mit der Kopfzeile nun anders anzugehen...
Der Weg scheint mir der richtige zu sein, allerdings tut sich bei der Ausführung nichts, also das Dokument sieht nach wie vor unverändert aus...
Visual Basic: [code]'Die Vorlage Datei öffnen Set objWordVorlage = CreateObject("Word.Application") objWordVorlage.Documents.Open "C:Dokumente und EinstellungenxxxDesktopFOB CL Gesamt.cqs" Set adocVorlage = objWordVorlage.ActiveDocument adocVorlage.Activate 'Suche die Kopfzeile objWordVorlage.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader 'Kopiere dessen Inhalt (Strg A, Strg C) Selection.WholeStory Selection.Copy 'Jetzt die OriginalDatei öffnen Set objWord = CreateObject("Word.Application") objWord.Documents.Open "C:Dokumente und EinstellungenxxxDesktopFOB 002-01 Verzeichnis gültiger VA.doc" Set adoc = objWord.ActiveDocument adoc.Activate 'Suche Kopfzeile objWord.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader 'Markieren (Strg A) Selection.WholeStory 'Löschen Selection.Delete 'Kopfzeile der Vortlage einfügen Selection.Paste adoc.Save adoc.Close adocVorlage.Close 'Objekt Referenzen lösen Set objWordVorlage = Nothing Set objWord = Nothing[/code]
_______________________
Für alle die auch das selbe Problem wie ich haben und dies hier lesen,...
Folgende Funktion fügt die Kopfzeile / Fusszeile eines Dokuments in das andere ein....
Visual Basic: [code]'Fügt die Kopfzeile/Fusszeile von DestFile in SrcFile ein Function Tausche_HeaderFooter(ByVal DestFile As String, ByVal SrcFile As String) Dim ADoc As Object 'Ziel Dim BDoc As Object 'Quelle Dim rngKopf As Word.Range 'Quelle Dim rngZiel As Word.Range 'Ziel Dim rngFoot As Word.Range 'Quelle Dim rngFootZiel As Word.Range 'Ziel Set ADoc = CreateObject("Word.Application") Set BDoc = CreateObject("Word.Application") 'Quelldatei öffnen Set BDoc = Documents.Open(SrcFile) Set BDoc = ActiveDocument 'Hole Kopfzeile Set rngKopf = BDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range.FormattedText Set rngFoot = BDoc.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText 'Zieldatei öffnen Set ADoc = Documents.Open(DestFile) Set ADoc = ActiveDocument If ADoc.HasPassword Then ADoc.Unprotect "ok" End If 'Ziel Kopfzeile Set rngZiel = ADoc.Sections(1).Headers(wdHeaderFooterPrimary).Range Set rngFootZiel = ADoc.Sections(1).Footers(wdHeaderFooterPrimary).Range 'rngZiel.Delete rngZiel.Text = " " rngFootZiel = " " 'Die Kopfzeile ins Ziel Dokument einfügen rngZiel.Collapse wdCollapseStart rngZiel.FormattedText = rngKopf.FormattedText 'Die Fußzeile ins Ziel Dokument einfügen rngFootZiel.Collapse wdCollapseStart rngFootZiel.FormattedText = rngFoot.FormattedText ADoc.Protect wdAllowOnlyFormFields, False, "ok" ADoc.Save ADoc.Close BDoc.Close Set ADoc = Nothing Set BDoc = Nothing End Function[/code] |
|
| |
|
 |
|
|