在Word中我有一个书签的列表,并希望将交叉引用(复制文本并具有超链接)插入这些书签。通过宏录制和调整参数,我得到了这个,用myRange
的文本替换myBookmark
并创建了一个指向该书签的超链接:
myRange.InsertCrossReference _
ReferenceType:=wdRefTypeBookmark, _
ReferenceKind:=wdContentText, _
ReferenceItem:=myBookmark, _
InsertAsHyperlink:=True
除了一件事之外,它的工作正常:如果我改变了我书签的文本样式(例如使其变为粗体)并更新交叉引用,那么交叉引用也采用该样式 - 我需要复制只有书签中的文字,但样式(颜色,粗体,等等)应该是交叉引用所在的上下文中的一个(例如文本应该保持斜体或蓝色或其他)。
手动更改交叉引用的样式没有太大帮助 - 在更新交叉引用字段后,样式将回退到书签之一。
我无法相信这没有选择,我甚至不知道如何手动获得那种书签/交叉引用(没有VBA)。任何提示?
注意:当我在标记它之前对范围执行ClearFormatting
(并在之后设置该样式)之后,交叉引用将在更新字段后保持其样式(到目前为止一直很好),除非(原文如此!)他们没有风格,那么他们将采用书签的改变风格 - 如果书签是纯文本,这不是问题,但如果它在 - 比如说 - 一个带斜体的表单词,我会对所有没有样式的交叉引用采用这种斜体格式。那么,什么是一般解决方案?
答案 0 :(得分:2)
答案是在交叉引用底层的REF字段代码中使用* CharFormat开关。
对书签“test”的交叉引用示例:
REF test \h \* CharFormat
您可以通过使用Alt + F9切换视图来查看字段代码。通过添加开关进行测试,然后按F9强制进行现场更新。
在对象模型中添加此开关没有选项。但是你可以通过编辑Field.Code.Text属性来相当容易地完成它。实施例
ActiveDocument.Fields(2).Code.Text = _
ActiveDocument.Fields(2).Code.Text & " \* CharFormat "