查找格式化的文本和数字:“Case: BE########”并格式化它们,无论数字是多少

问题描述 投票:0回答:1

我需要重新格式化 Word 文档中的数百个案例编号。 它们都以“Case:BE:”开头,后跟八个数字。 我需要找到所有“Case:BE########”并将其加粗并在每个情况下划线。

我尝试录制一个宏[因为我通常是这样解决的]但是当我这样做时,我需要搜索特定的案例编号,因为我不知道如何表示搜索字符串中的任何数字。当我搜索并找到一个案例编号时,它一次只会做一件事,粗体或下划线。而且我搜索的案例编号甚至没有出现在宏中。

vba text ms-word reformatting
1个回答
0
投票
  • Case: BE
    是一个文字字符串。
  • [0-9]
    匹配 0 到 9 之间的任何数字。
  • {8}
    指定前面的字符(在本例中为数字)应恰好重复 8 次。

微软文档:

Find.Execute 方法(Word)

Replacement.ClearFormatting 方法(Word)

选择.查找属性(Word)

Option Explicit
Sub BoldAndUnderline()
    With Selection.Find
        .ClearFormatting
        .Text = "Case: BE[0-9]{8}"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
        .Replacement.ClearFormatting
        With .Replacement.Font
            .Bold = True
            .Underline = wdUnderlineSingle
        End With
        .Execute Replace:=wdReplaceAll
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.