我有一个使用许多不同字段的 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