1.5k Aufrufe
Gefragt in Textverarbeitung von
Hallo,

bei der Suche nach VBA-Code für das Aktualisieren aller Felder in einem Word-Dokument (also auch in Kopf-/Fußzeilen, Abschnitten etc.) habe ich mir folgenden Code zusammenkopiert (nur Auszüge, da der Beitrag sonst zu lang ist):

Sub AlleFelderAktualisieren()

Set oDoc = ActiveDocument

For Each abschnitt In oDoc.Sections
For Each rngDoc In oDoc.StoryRanges
rngDoc.Fields.Update
While Not (rngDoc.NextStoryRange Is Nothing)
Set rngDoc = rngDoc.NextStoryRange
rngDoc.Fields.Update
Wend
Next rngDoc

If oDoc.TablesOfContents.Count > 0 Then
For Each oTOC In oDoc.TablesOfContents
oTOC.Update
Next oTOC
End If

If oDoc.TablesOfFigures.Count > 0 Then
On Error Resume Next
For Each oTOF In oDoc.TablesOfContents
oTOF.Update
Next oTOF
On Error GoTo 0
End If
Next abschnitt

End Sub

Leider aktualisiert es mir keine Felder in der Fußzeile des 2. und der folgenden Abschnitte.

Deshalb meine Fragen hierzu:
1. An welcher Stelle fehlt hier was im Code?
2. Muss es anstelle von "For Each oTOF In oDoc.TablesOfContents" nicht "For Each oTOF In oDoc.TablesOfFigures" heißen?
3. Beim Debuggen habe ich mir die jeweiligen Werte angeschaut und bin daraus nicht schlau geworden. Was kann denn in Word alles ein 'Range' sein (s.o. rngDoc)?

Vielen Dank für eure Hilfe
Jojo

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...