如何构建具有以下特点的自定义文本:(a)通用模板创建、(b)跨多个文档的可用性以及(c)自动更新

如何构建具有以下特点的自定义文本:(a)通用模板创建、(b)跨多个文档的可用性以及(c)自动更新

问题:消除文档之间的不一致。假设我在文档 A 中为“通用条款”(GP) 写了 5 个句子,并在文档 B 中使用了相同的语言。但如果我在文档 A 中编辑了 GP 语言,我很容易忘记在文档 B 中编辑它。

更具体:假设 GP 包含:“这是 s1。这是 s2。这是 s3。”文档 A 和 B 中都有上述 GP 语言。假设我编辑了 GP 语言以删除最后一句话,显示:“这是 s1。这是 s2。”我希望新的 GP 语言在文档 1 和文档 2 中自动更新。

理想的解决方案:我可以编写一次语言并将其保存为可跨文档使用的模板。例如,我编写语言,将其保存为“市场对峙语言”,然后在多个文档中调用该语言。当我想进行编辑时,我只需更改模板。调用该语言的所有地方都会自动更新。我不必逐一浏览每个文档来手动更改语言。

总之:理想的解决方案将具备以下所有内容:(a)通用模板创建,(b)跨多个文档的可用性,以及(c)自动更新。

我尝试过的:

  1. 将选择项添加到构建块。这样我可以执行 (a) 和 (b),但不能执行 (c)。构建块不会自动更新。我必须找到并重新插入选择项,这违背了练习的目的。请参阅在 Word 文档的多个地方共享一个值的好方法是什么?
  2. 将选择添加到自动文本。与 (1) 存在相同问题
  3. 在开发人员选项卡下创建富内容控件。它不允许我执行 (b) 或 (c)。请参阅如何创建自定义“文档属性”?或者在 Word 中添加类似日期或标题的 QuickPart
  4. 创建书签和交叉引用。它不允许我执行 (b)。如果我突出显示整个文档并按 F9,我可以执行 (c)
  5. 创建自定义文档属性。不满足 (b)。创建文档属性 quickpart 后,它不会像构建块一样转移到另一个文档。请参阅Word 在快速部件中创建多个文档属性
  6. 编辑文档属性。插入 Quickparts → 文档属性。不满足 (b)。但它确实会更新,而无需更改任何内容。
  7. 创建书签并使用字段引用。不满足 (b) 创建书签然后插入字段 → 公式 → REF 并粘贴书签。如果您编辑原始文本,并突出显示所有内容并按 F9,则连接的文本会自动更新

答案1

如果没有帮助,什么也做不了(c)(自动更新)。

实现几乎所有其他目标的最简单方法是将所有共享材料放在一个文档中(或者事实上,您可以使用多个文档)。

为每个项目添加书签。

要在“客户端”文档中使用该项目,请使用指定文档全名和书签的 INCLUDETEXT 字段。

例如 { INCLUDETEXT "http://192.168.222.10/sharedtexts1.docx“通用规定 }

您无法获得自动更新,但用户可以更新文档中的所有共享文本身体使用 ctrl-A、F9(或 Mac 等效键,在这种情况下,您需要确保文档完整路径+文件名在 Windows 和 Mac 平台上相同)。

对我来说,任何此类方法的关键问题包括:

  • 所有用户是否都了解其工作原理(例如,这样他们就不会因大量的字段和/或内容控件而望而却步)?特别是,谁将创建/维护这些文档?他们如何知道哪些共享块可用?对于大量共享块,如何避免创建具有多个名称的相同块?如何处理两个文档共享一个块的情况,但在某些时候需求发生变化并且它们各自都需要具有不同内容的块?
  • 该方法是否可以处理单个文档中可能出现的大量插入
  • 您是否需要处理任何法律/合规制度,例如,要求您确保拥有任何给定时间点出现的任何文件的副本(对于“自动更新”的方案来说,这可能是一个主要问题)

如果您需要更完整的更新(包括页眉和页脚),那么您真的必须考虑使用代码,例如 VBA 自动打开宏。

在我看来,只要你使用 VBA 代码,游戏就会发生变化,最好考虑另一种方法。例如,对于纯文本块,你可以创建一个共享文档,其中的内容控件链接到一个或多个自定义 XML 部分。当打开“客户端文档”时,其自动打开宏将打开共享文档并复制自定义 XML 块,覆盖现有的块。但我不确定这是否适用于富文本块,因为每个块都存储为完整的 Flat OPC XML 文档,而且它们可能非常大。无论如何,你都需要 Word 2013 或更高版本才能使用它(不确定 Mac Word 2016 是否适用,因为与内容控件相关的功能最近发生了变化,但仍然没有 VBA 支持 customxmlparts 或内容控件)。

相关内容