对于这个特定的问题,我可能已经超出了我的能力范围,但我将尽可能地具体说明,以防它在我的范围内。免责声明:除了简单的数据输入/一些格式化之外,我对MS Word并没有太多的经验,而且我绝对没有使用宏或VBasic的经验。不幸的是,我担心我的问题的解决方案将以最后两个中的一个的形式出现。
目标:
我想做的是在我的模板文档中有占位符文本,当它的第一个实例被改变时,它将改变内容,但不改变格式。基本上,我正在为软件套件的支持手册编写模板。每个应用程序都有某些类似的功能,如菜单栏、数据输入屏幕、诊断日志屏幕、交易历史等,所以我提前编写了这些部分,并在需要插入某些应用程序特定属性时使用占位符。
我开始使用插入->快速部件->文档属性->主题工具,我用它作为应用程序名称的占位符。我将属性设置为[Subject],然后在整个文档中使用Insert->Quick Parts->Field->Subject,无论我需要包含应用程序名称的地方。这在这种情况下工作得很好,因为应用程序名称总是大写的。我只需更改第一个[Subject]中的文本(这是内容控制的)并更新整个文档中的字段,它们都匹配得很好,很容易,工作完成,回家喝啤酒,对吗?
。
我们的软件通过扫描仪和SQL Server处理部件跟踪,因此,虽然应用程序中的界面和菜单基本保持不变,但它们跟踪的部件从应用程序到应用程序的变化。正因为如此,当我在手册文本中引用它时,我需要更改部件名称;例如,如果我在ToiletPap工作。app和我们的TP是由roll跟踪的,我需要每次提到[Component]都更改为roll。如果我在灯泡行业工作。应用程序,我需要[组件]说灯泡。
我的第一个尝试是使用文档属性下拉菜单下的高级选项卡创建一个名为Component的自定义文档属性。然后,我在第一个标题为Component的[Component]周围创建了一个明文内容控件,并使我的下一个[Component]具有修改后的代码:{Component * MERGEFORMAT}字段。这来自于在[主题]工作时复制我能找到的东西。这根本行不通;更新第一个CC中的文本不会改变Content文档道具,并且我的字段返回"!"未定义的书签,COMPONENT".
我通过使用[Comments] doc属性来接近我需要的内容,最初设置为[Component]。我像使用[Subject]一样使用它,但是(这是当我意识到大写将成为一个问题时)当我在文本中提到我的[component]时,我通常需要小写而不是大写。
我看了微软的论坛和其他一些人以及这里的SO,我找不到任何人试图做同样的事情,更不用说如何回答。请记住,当回答,这将是一个很大的帮助,如果你将包括如何进入/实现你提供的代码分步说明,因为,正如我提到的,我不知道如何去编辑宏/VBasic的MS Word。
重申并总结我的总体问题:我如何使用占位符来显示文本"[Component]",以便当我将[Component]的第一个实例更改为其他东西时,例如"hopper",[Component]的每个后续实例都更新为hopper,但保持其当前的大写和格式方案?
很抱歉这么长时间的请求,但我想确保我尽可能准确地解释了情况。事先感谢您的考虑和回复。
经过几个小时的修修补补,我终于解决了这个问题。我也不需要宏或VBasic。
在[component]的第一个实例上,我创建了一个纯文本内容控件作为容器(不是必需的,但它使它看起来更好)。最终可能会导致问题,但目前,它正在按预期工作)并将其收藏。然后,对于[container]的所有其他实例,我选择了每个并使用Insert->Quick Parts->Field->Ref,字段代码如下:
REF Text1 *Lower
其中"Text1"是我的书签,"*Lower"表示全部小写。*Lower可替换为*Upper或*FirstCap,分别表示全大写或首字母大写。现在,每个字段都反映了第一个字段的文本,其大小写与每个字段在文档中的位置相适应。就像使用[Subject]的doc prop一样,^a -> f9需要更新文档中的所有字段。