如何使目录自动更新?

Dan*_*Dan 5 microsoft-word-2007 microsoft-office-2007

我使用的是 Word 2007,但将我的文档保存为 .doc(而不是 .docx)格式,因为这是公司政策。

我的 ToC 设置得很好,但是有没有办法让它自动更新(在文档打开、保存或其他情况下)?Word 帮助建议它应该在打开文档时更新,但这似乎没有发生。

有任何想法吗?

har*_*ymc 4

如果“工具”>“选项”>“打印”>“更新字段”选项上有复选标记(在 Word 2007 中,Office 按钮>“Word 选项”>“显示”>“打印前更新字段”),则转到“打印预览”并返回将更新字段。但按 Ctrl+A 然后按 F9 也同样容易。

如果您正在寻找根本不需要任何用户交互的东西,那么您需要一个宏。
用于更新 ToC 类型的所有字段的宏示例是:

Sub TOCFieldUpdate()
' 由 Charles Kyle Kenyon 撰写,2005 年 1 月 27 日
' 字段更新程序 - TOC 字段
Dim oField As Field
On Error Resume Next
For Each oField In ActiveDocument.Fields
If oField.Type = wdFieldTOC then
oField.Update
End If If
If oField.Type = wdFieldTOA 然后
oField.Update
End If
Next oField
End Sub

如果您希望定期执行上述宏,这里还有另一个宏。
每 5 分钟更新一次目录:

Public Sub ToCUpdate()
调用 TOCFieldUpdate
DoEvents
Application.OnTime When:=Now + TimeValue("00:05:00"), name:="ToCUpdate"
End Sub

您可以将此宏分配给图标或热键。我不建议让它在文档打开时自动运行,因为这会违反 Microsoft 的最新安全保护措施。

注意:以上内容未经测试,更糟糕的是,这是我第一次尝试编写 VBA。