Как автоматически обновить все поля перед закрытием документа Word

Поделись сейчас:

В этой статье мы сосредоточимся на описании способа автоматического обновления всех полей в документе перед его закрытием.

Мы используем поля для хранения данных, которые могут измениться позже. Поэтому, как только мы внесем в них некоторые изменения, нам нужно соответствующим образом обновить поля. И, к сожалению, мost времени нам придется обновлять их вручную.

Кроме того, самая большая проблема заключается в том, что мы можем легко забыть обновить поля. Для решения этой проблемы мы предлагаем вам макрос для автоматического обновления полей перед закрытием документа.Автоматическое обновление всех полей перед закрытием документа Word

Обновить все поля перед печатью

Вы можете изменить параметры Word, чтобы настроить поля обновления перед печатью, выполнив следующие действия:

  1. Во-первых, нажмите вкладку «Файл», затем «Параметры».
  2. Затем в открытом окне «Параметры Word» нажмите «Показать» в левом столбце.
  3. В правой части перейдите в раздел «Параметры печати», чтобы установить флажок «Обновить поля перед печатью».
  4. Наконец, нажмите «ОК».Нажмите «Отображение» -> «Отметить поле «Обновить поля перед печатью»» -> «ОК».

Автоматическое обновление всех полей перед закрытием документа

  1. Для начала запустите редактор VBA в Word, нажав «Alt+F11».
  2. Затем нажмите «Обычный» проект.
  3. Затем в строке меню нажмите «Вставить».
  4. И выберите «Модуль класса».Нажмите «Обычный» -> Нажмите «Вставить» -> Выберите «Модуль класса».
  5. Затем щелкните команду «Окно свойств» в строке меню или нажмите «F4», чтобы вызвать ее.
  6. В окне, открытом в левом нижнем углу, назовите только что созданный модуль класса «objWordClass».
  7. В области кодирования введите следующие коды:
Option Explicit
Public WithEvents objWord As Word.Application
Private Sub objWord_DocumentBeforeClose(ByVal objDoc As Document, varCancel As Boolean)
  Dim strButtonValue As String

  Application.ScreenUpdating = False
  Set objDoc = ActiveDocument
  objDoc.Save
  strButtonValue = MsgBox("Do you want to update all fields in this document before closing?", _
                   vbYesNo + vbQuestion)
  If strButtonValue = vbYes Then
    varCancel = True
    If objDoc.Fields.Count > 0 Then
      With objDoc
        .Fields.Update
        .Save
        .Close
      End With
    Else
      MsgBox ("There is no field in this document.")
    End If
  Else
    varCancel = False
  End If

  Application.ScreenUpdating = True
End Sub
  1. И не забудьте нажать кнопку «Сохранить».Нажмите «Окно свойств» -> «Назовите модуль класса» -> «Вставить коды» -> «Сохранить коды».
  2. Теперь все еще в «Обычном» проекте снова нажмите «Вставить» и на этот раз выберите «Модуль».Нажмите «Обычный» -> нажмите «Вставить» -> нажмите «Модуль».
  3. Затем откройте модуль и вставьте эти коды:
Option Explicit
  Dim objWordClass As New objWordClass
  Public Sub AutoOpen()
  Set objWordClass.objWord = Word.Application
End Sub
  1. Аналогично сохраняйте коды.
  2. В следующий раз, когда вы закончите редактирование документа, сохраните его. И когда вы нажмете команду «Закрыть», вы получите окно с запросом. Нажмите «Да», чтобы обновить все поля, и документ будет закрыт, когда задача будет выполнена.Нажмите «Закрыть» -> нажмите «Да» или «Нет».

Вернуть мертвый документ к жизни

Время от времени при использовании Word неизбежно возникают некоторые проблемы. Поэтому желательно быть готовым к любым возможным поврежденный документ. Лучше всего, конечно, заранее обзавестись специализированным ремонтным инструментом.

Об авторе:

Вера Чен — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая ремонт Эксель и pdf ремонт программных продуктов. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.