Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do I make Word 2007 update all fields upon save? This should include fields in headers and footers.

If possible, no macros and VB code please. I want to keep the documents clean.

share|improve this question
    
My memory is a little rusty, but I think F9 or Ctrl+F9 is involved. If you hit that before Ctrl+S, you should be fine. – user3463 Oct 1 '10 at 5:50
    
Ctrl+A then Ctrl+F9 doesn't include the headers and footers. – Kit Oct 1 '10 at 6:06
    
This question may be of interest: superuser.com/questions/51268/… – Ash Oct 1 '10 at 8:46
    
Typically code wouldn't be stored in an actual production document, but rather a template or external assembly using COM / Office Interop. – jJack Dec 2 '12 at 8:08
up vote 6 down vote accepted

Since Ctrl+A and Ctrl+F9 will not address the headers/footers, and possibly other stories, VBA or other code will be required, which would probably be a question best fit for Stack Overflow.

VBA code might look like:

Sub updateFieldsIncludeHeadersFooters()
    Dim sec As Section
    Dim hdrftr As HeaderFooter

    ActiveDocument.Fields.Update 'address the fields in the main text story

    'now go through headers/footers for each section, update fields per range
    For Each sec In ActiveDocument.Sections
        For Each hdrftr In sec.Headers
            hdrftr.Range.Fields.Update
        Next
        For Each hdrftr In sec.Footers
            hdrftr.Range.Fields.Update
        Next
    Next
End Sub

I would not recommend taking over Word's Save event to run this automatically, but rather hooking it to a button or have some other way for the user to explicitly call it.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .