Word VBA:超链接.Range.Font.TextColor.RGB 和兼容模式

Word VBA:超链接.Range.Font.TextColor.RGB 和兼容模式

有人能告诉我为什么在兼容模式下保存的 Word 文档上运行时,下面的第一行代码会抛出错误 445(对象不支持此操作)吗?第二行运行正常。

ActiveDocument.Hyperlinks(1).Range.Font.TextColor.RGB = RGB(1, 2, 3)

ActiveDocument.Hyperlinks(1).Range.Font.Color = RGB(1, 2, 3)

作为该问题的后续,第二行如何工作?根据 VBA 参考,Font 对象甚至没有“Color”属性,只有“ColorIndex”、“ColorIndexBi”和“TextColor”属性。

答案1

这种复杂性完全是由于 Office 团队提供的不完整的 Microsoft 文档造成的。

第二行是怎么工作的

字体颜色属性 (Excel)Font.Color property (Excel) 是 的一个真实属性Font,即使它只在 Excel 中记录过。但正如您所发现的,它也适用于 Word。

为什么下面的第一行代码会引发错误 445

您问为什么TextColor.RGB兼容模式下会出现错误。

“兼容模式”是指在旧版本Office支持的模式下工作。

字体.文本颜色ColorFormat 对象.这里的关键词是目的

对象应该是只读的,因为它是对象而不是属性。严格来说,您不应该能够更改和设置对象引用到其他内容(通常您不需要这样做),但您仍然可以修改其状态,即其属性。

显然,旧版本的 VBA 对对象和属性之间的区别存在一些混淆,因此对的引用TextColor在内部翻译为现在所称的TextColor.RGB

在新版本中,对象和属性之间的区别得到了改进,因此.RGB可以使用属性来获得更高的精度。

Microsoft 文档不能保证准确无误,因为它似乎是新旧文本的混合体。尤其是 Office 文档。很多时候,需要“尝试并观察”才能知道什么方法有效以及何时有效。

答案2

在里面完整列表Word.Range我们可以看到方法和Range属性Font财产

根据文档,此Font属性

返回或设置一个 Font 对象,该对象代表指定对象的字符格式。读/写 Font。

相关内容