ASK 字段不会更新 Microsoft Word 模板中的书签

ASK 字段不会更新 Microsoft Word 模板中的书签

我正在为我的办公室创建一个模板文档,该文档使用一系列 ASK 字段来用形式内容填充一些书签。

模板中唯一的 VBA 用于更新新文档创建时的字段:

Private Sub Document_New()
  ThisDocument.Fields.Update
End Sub

现在,当我从模板创建新文档时,所有 ASK 提示都会出现。但是,完成最后一个提示后,书签值不会更新(即使在按 Ctrl+A、F9 之后也是如此)。如果我再次执行提示,它确实有效。

此外,每当我关闭或保存根据模板创建的新文档时,都会出现以下提示:

关闭提示

尽管我不确定我如何编辑原始模板。尽管我所做的只是响应 ASK 字段提示,但还是会出现此提示。

答案1

虽然回想起来ThisDocument模板文件中总是指的是模板文件(即不是您从模板创建的文件)。

这导致了使用模板时出现奇怪但并不出乎意料的行为:

  1. ASK 提示正在更新模板文件中的书签
  2. 由于这些书签位于模板中,而不是您创建的新文档中,因此新文档中的书签根本不会更新
  3. 第二次手动运行 ASK 提示将会更新新文档中的书签
  4. 因为我更新了模板文件中的书签,所以关闭文档时会出现模板修改提示

我发现解决这个问题最简单的方法就是简单地ThisDocument改为ActiveDocument

Private Sub Document_New()
  ActiveDocument.Fields.Update
End Sub

现在,调用此宏将仅更新活动文档中的字段(除非您正在编辑模板),这些字段将始终引用您刚刚创建的空白文档。

相关内容