+ -
当前位置:首页 → 问答吧 → 如何给符合某条件的文字加上底纹?谢谢。

如何给符合某条件的文字加上底纹?谢谢。

时间:2011-02-24

来源:互联网

请教各位高手,我有有篇word文档,里面有些词语是高亮显示的,散布在文中各处。我现在想给文中所有的高亮字词加上底纹,于是我写了个替换的宏:
Sub 宏2()
'
' 宏2 宏
'
'

    Selection.Find.ClearFormatting
    Selection.Find.Highlight = True
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Shading.BackgroundPatternColorIndex = wdYellow
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

结果运行起来,并没有效果,请问应该如何写这个宏?
或者能告诉我如何手动操作也行。本来想利用先”选择格式相似的文本“,然后点击菜单栏中的“底纹”按钮(word2010中有),但无论如何也无法把高亮文字同时选中,可能是因为高亮的文字中有加粗、斜体和下划线等多种格式的影响。
先谢谢了。

[ 本帖最后由 wxg 于 2011-2-24 19:45 编辑 ]

作者: wxg   发布时间: 2011-02-24

高亮之后再加底纹那么底纹颜色不是看不出来了吗?是否要把高亮颜色去除?
复制内容到剪贴板
代码:
Sub test()
Application.ScreenUpdating = False
With ActiveDocument.Content.Find
    .ClearFormatting
    .Highlight = True
    .Format = True
    .Text = ""
    .Forward = True
    Do While .Execute
        .Parent.HighlightColorIndex = wdNoHighlight
        .Parent.Font.Shading.BackgroundPatternColorIndex = wdYellow
        .Parent.Collapse wdCollapseEnd
    Loop
End With
Application.ScreenUpdating = True
End Sub

作者: honggexjq   发布时间: 2011-02-24