Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用查找word文档中的word_Vba_Ms Word - Fatal编程技术网

Vba 使用查找word文档中的word

Vba 使用查找word文档中的word,vba,ms-word,Vba,Ms Word,我有一个word文档包含一些百分比数字。例如,本月回报率为1.25%。“我想用黄色背景色突出显示百分比数字。以下代码查找模式1或2位数字,后跟一个点,后跟1或2位数字,后跟%并突出显示它(例如1.2%、1.23%、12.3%或12.34%): 这一个查找后跟%的模式1或2位数,并将其高亮显示(例如1%,12%): 希望这能满足你的需要 编辑: 如果您还想在数字前面突出显示负号,我建议您这样做,以避免一次又一次地复制代码: Public MyPattern As String Sub MainS

我有一个word文档包含一些百分比数字。例如,本月回报率为1.25%。“我想用黄色背景色突出显示百分比数字。

以下代码查找模式1或2位数字,后跟一个点,后跟1或2位数字,后跟%并突出显示它(例如1.2%、1.23%、12.3%或12.34%):

这一个查找后跟%的模式1或2位数,并将其高亮显示(例如1%,12%):

希望这能满足你的需要

编辑: 如果您还想在数字前面突出显示负号,我建议您这样做,以避免一次又一次地复制代码:

Public MyPattern As String

Sub MainSub()

    MyPattern = "[0-9]{1,2}.[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "-[0-9]{1,2}.[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "-[0-9]{1,2}%"
    HighlightPattern

End Sub

Sub HighlightPattern()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
With Selection.Find
    .Text = MyPattern
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

End Sub

你能精确一点你的目标和你文档的内容吗?文档的长度,里面有很多数字吗?你想突出显示所有数字还是只突出显示带%?还有,到目前为止你做了什么?我想突出显示所有数字,这是一个10页的文档。我试图找到“%“在文档中,但不知道如何选择整个数字(1.25%)。谢谢Remi,我可以在查找文本中加上负数吗?这里我们查找文本字符,这样你就不能真正地考虑正负号,但是用字符来查看:你可以通过在<代码>中的参数中加上负号来做它。文本< /代码>部分:给你:<代码> -[09] {1,2}。[09] {1,2} %“< /代码>和代码>”-[09] {1,2}%在这种情况下,您必须复制代码段落。一个好方法是只写一段带有变量
.Text
的段落
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
With Selection.Find
    .Text = "[0-9]{1,2}%"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Public MyPattern As String

Sub MainSub()

    MyPattern = "[0-9]{1,2}.[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "-[0-9]{1,2}.[0-9]{1,2}%"
    HighlightPattern

    MyPattern = "-[0-9]{1,2}%"
    HighlightPattern

End Sub

Sub HighlightPattern()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
With Selection.Find
    .Text = MyPattern
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

End Sub