У меня есть документ Word, в котором используется много разных полей. Я написал макрос, который обновляет все поля sequence
, reference
, page и numpages
в документе.
Обновление текстовых полей возвращает их к тексту по умолчанию, поэтому я не хочу, чтобы они обновлялись.
Этот макрос отлично работал в Word 2007, но недавно я обновился до Word 2013, и он больше не работает должным образом.
При запуске этого макроса для всех полей страницы и numpages
устанавливается значение 1. Тем не менее, когда я обновляю их вручную, они обновляются правильно.
Были ли изменения в способе обновления полей в Office 2013?
Код макроса ниже.
Sub UpdateAllFields()
UnprotectDocument
'UpdateAllFields Macro
Dim objDoc As Document
Dim objFld As Field
'Updates the specified form fields. This can take a while when the document gets large
Set objDoc = ActiveDocument
For Each objFld In objDoc.Fields
If objFld.Type = wdFieldRef Then 'Updates Cross References
objFld.Update
If objFld.Type = wdFieldPage Then 'Updates Page Numbers
objFld.Update
ElseIf objFld.Type = wdFieldNumPages Then 'Updates Total Page Count
objFld.Update
ElseIf objFld.Type = wdFieldSequence Then 'Updates Sequence Fields
objFld.Update
End If
Next objFld
ProtectDocument
End Sub
UnprotectDocument
? - person 0m3r   schedule 18.07.2015IF THEN ELSE Statement
неполный - person 0m3r   schedule 18.07.2015Fields(...).Update
устанавливаетPAGEREF
s на1
вместо правильного номера страницы. Его установка ведет себя не так, как моя, так что это может быть что-то в реестре, какие обновления установлены, или что-то из обычных подозреваемых для каждой машины. - person cxw   schedule 04.07.2016