我在 MS Word 2013 VBA 中有一个宏(notExcel),切换所选文本的突出显示颜色。代码看起来像
这:
If Selection.Range.HighlightColorIndex = WhtColor Then Selection.Range.HighlightColorIndex = wdNoHighlight Else Selection.Range.HighlightColorIndex = WhtColor
这对于连续/连续选择非常有用。但是,如果我
例如,在 Word 表中选择 4 个不连续的行(例如第 5、12 行、
15 和 19),宏仅突出显示所选的最后一行。
如何让 HighlightColorIndex 应用于所有“部分”
不连续的范围,或者,如何循环遍历不同的“部分”
范围并将 HighlightColorIndex 应用于每个部分?
蒂姆·威廉姆斯指向的网页(support.microsoft.com/en-us/kb/288424)给出了关于这是如何可能的线索。但是,那个链接does表明不能循环遍历非连续的选择。
尽管如此,该链接还显示字体格式can可以为非连续选择设置,但不能为范围对象设置。
这是修改后的代码does用于非连续选择:
If Selection.Font.Shading.BackgroundPatternColor = WhtColor Then Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic Else Selection.Font.Shading.BackgroundPatternColor = WhtColor
该代码会将背景颜色更改为所选的目标颜色(尽管我必须将颜色代码从 Wd 常量更改为 WdColor 常量)。
这种方法的唯一缺点是我不知道如何搜索背景颜色已更改的文本,而您can搜索突出显示的文本。
不管怎样,谢谢@Tim Williams 提供的有用链接。希望以上内容可以帮助那些只想更改字体属性而实际上不必循环遍历所选范围的各个部分的其他人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)