无法选择部分超链接范围

时间:2016-09-29 08:17:12

标签: c# ms-word vsto

我的插件中的超链接包含基于某些条件的3种颜色,然后使用超链接我使用documents.Range(start, end);来更改颜色和字体。

但是一旦添加到超链接中,颜色就消失了,实际上我无法选择超链接范围的一部分,documents.Range(start, end);返回的所有范围都不属于它。

2 个答案:

答案 0 :(得分:3)

格式化超链接的各个部分是可行的。但是,这并不简单。超链接被实现为字段字段,即它们由字段代码和显示值组成(实际上,它们是特殊类型的字段,并非所有相关信息(例如显示文本都存储)在现场代码中。)

您可以按Alt + F9显示域代码(再次按相同的快捷键再次隐藏它)。

当您设置范围的开始和结束以应用格式时,您需要考虑将字段代码添加到显示文本之前(尽管默认情况下您在查看{{{}时看不到字段代码1}})。例如,如果超链接从偏移量100开始,则显示文本实际上将从偏移量100 + 字段代码长度开始。

此示例VBA宏说明了如何检索字段代码的长度并计算正确的偏移量:

Range.Text

答案 1 :(得分:0)

问题是超链接从文本更改为对象模型对象,即“超链接”对象。此对象具有超链接样式,这是您在将其更改为超链接对象后看到的内容。

如果您想以不同的方式显示超链接,可以更改超链接样式。