0

在我的程序中,我使用Find.Execute搜索关键字的所有单词形式并突出显示它们。例如,如果我的源文档包含“perform”和“performance”,Find.Execute(...matchAllWordForms=true...)会找到这两个词,但它只会突出显示“perform”部分的性能。

如何让 MSWord 突出显示整个单词?被range.Text更改Find.Execute为只是“执行”,所以我无法遍历它。我尝试做 aRange.Select()然后迭代Selection.End,但范围与原始文档不匹配。

任何帮助将不胜感激!

4

1 回答 1

0

好吧,我觉得有点愚蠢:

我试图使用Selection.Extend并完全错过了该Selection.Expand选项。对于以后偶然发现此问题的任何人:

range.Select();    // The range after Find.Execute
wordApp.Selection.Expand(Word.WdUnits.wdWord);    // may have to trim off excess whitespace
Word.Range highlightRange = document.Range(wordApp.Selection.Start, wordApp.Selection.End);
wordApp.Selection.Shading.BackgroundPatternColor = (Word.WdColor)System.Drawing.ColorTranslator.ToOle(extractedColor);

请注意,我使用 Shading 作为我的荧光笔(因此我可以创建自定义颜色,System.Drawing.Color.FromARGB(Alpha,R,G,B)而不是默认的 15 种颜色)。

于 2012-06-20T22:26:26.887 回答