4

Как заставить Word 2007 обновлять все поля после сохранения? Это должно включать поля в верхних и нижних колонтитулах.

Если возможно, не используйте макросы и код VB, пожалуйста. Я хочу держать документы в чистоте.

1 ответ1

6

Поскольку Ctrl+A и Ctrl+F9 не будут обращаться к верхним и нижним колонтитулам, и, возможно, потребуются другие истории, VBA или другой код, который, вероятно, лучше всего подходит для переполнения стека.

Код VBA может выглядеть так:

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

Я бы не рекомендовал брать событие Save в Word для автоматического запуска, а просто привязывать его к кнопке или иметь какой-то другой способ, чтобы пользователь мог явно вызвать его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .