在括号中编辑并包装搜索结果

时间:2013-11-07 16:26:48

标签: vba ms-word word-vba word-2010

我想找到字符串“no”的所有出现。 +1到1之间的整数。 然后删除“不”。并在paranthesis:“(4)”或“(67)”之间包装整数/ s。例如。 “第34号”应成为“(34)”。

我似乎有多个问题(Word 2010):

  1. 代码只替换一个整数。如何让它找到一个或两个整数?
  2. 如何使.Replacement.Text包含数字,但不包含单词“no”。 (我刚刚放入XXXXX)。
  3. 我的代码确实添加了paranthesis,但是在活动文档的开头和结尾。如何让它包裹数字呢?

    With Selection.Find  
        .Text = "n[or]. [1-9]"  
        .Replacement.Text = "XXXXX"  
        .Forward = True  
        .Wrap = wdFindContinue  
        .Format = False  
        .MatchCase = False  
        .MatchWholeWord = False  
        .MatchWildcards = True  
        .MatchSoundsLike = False
        .MatchAllWordForms = False  
    End With  
    Selection.InsertBefore ("(")  
    Selection.InsertAfter (")")  
    Selection.Find.Execute Replace:=wdReplaceAll 
    

1 个答案:

答案 0 :(得分:0)

尝试使用以下解决方案:

With Selection.Find
    .Text = "(No.)( )([1-9]{1;2})"
    .Replacement.Text = "(\3)"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll