ms-word - 根据受众类型以编程方式高效地更改 Word 文档的文本
问题描述
我有几个 Word 文档,其中包含的语言需要根据它们是与受众 A 还是受众 B 共享而稍作更改。
目前,每当需要进行更改或生成新的草稿时,我都处于手动更改这些文档的令人羡慕的位置,这是一个非常乏味且容易出错的过程。
是否有某种方法可以在 Word 中以编程方式执行此操作?
理想情况下,我希望有一个内置“二进制开关”的文档,它允许我选择受众类型并快速自动生成一个新文档。
我以前从未在 Microsoft Word 中进行过任何认真的“编码”,所以如果这里的答案非常明显或实现起来很简单,我深表歉意。我不是在寻找任何人来牵手(或提供可复制和粘贴的代码):只需向我指出完成这项工作所需的资源、工具和技术的大致方向,我会很高兴从那里拿走它。
解决方案
您可以创建包含替代文本的单个文档。为每段文本分配一个书签。然后使用 VBA 宏使带书签的文本可见或不可见。
With ActiveDocument
.Bookmarks("TextA1").Range.Font.Hidden = True
.Bookmarks("TextB1").Range.Font.Hidden = False
.Bookmarks("TextA2").Range.Font.Hidden = True
.Bookmarks("TextB2").Range.Font.Hidden = False
End With
如果您使用File>Options>Display>Hidden Text,则具有隐藏文本的文档更易于编辑。隐藏的文本变得可见,但有一个虚线下划线。
推荐阅读
- r - 如何生成 1000 个元素为随机数的 2x2 矩阵?
- excel - Excel vba查找值列表之一的单元格地址
- lucene.net - Lucene.Net 4.8.0 是否支持 Azure Blob Storage 创建索引?
- nio - okhttp 是否有使用异步套接字实现 http2 的计划?
- azure - Azure AAD 门户注册应用清单无法更新
- javascript - selectize.js 仅在与 vue 的 v-for 一起使用时操作一个选项卡的 dom
- c# - 如何在 Unity 3d 中使用 RaycastHit.Point
- cors - AMP Email Playground 的正确 AMP-Access-Control-Allow-Source-Origin 响应标头是什么?
- api - Luis Dashboard api calls
- javascript - Vue CLI 不处理从 Vue 文件导入的 node_modules 中的 JS 文件