查找字符串,然后将格式应用于前面的字符数

Find String and then apply formatting to preceding number of characters

我有一个很大的word文档,大约800页,我需要在文本中找到一个人的名字后应用一些格式。

文本如下所示。

1999 年 1 月 1 日,09:00 - 乔博格斯:

我想在整个文档中找到“Joe Bloggs”,然后应用格式将其设为粗体和 Tahoma 字体,不仅是名称,还有名称之前的日期和时间,我认为是 20 个字符。

任何人都可以帮助解决一个可能很简单的问题吗?

这将适用于您所描述的内容(Joe Bloggs:并向左移动 20 个字符)。

Public Sub Main()
Dim oRng As Range
With Selection
    '''move selectiont to start of document
    .HomeKey Unit:=wdStory
    With .Find
        .Text = "Joe Bloggs:"
        .ClearFormatting
        .MatchWildcards = False
        .Wrap = wdFindStop
        Do While .Execute
            Set oRng = Selection.Range
            With oRng
                .MoveStart Unit:=wdCharacter, Count:=-20
                .Font.Name = "Tahoma"
            End With
            Selection.MoveRight
        Loop
    End With
End With
End Sub

只需在 Word 中使用 Find/Replace(没有 VBA)就可以

  1. 打开Find/Replace
  2. 单击 More 按钮显示 Use Wildcards 选项
  3. Select Use Wildcards 选项
  4. 对于 Find What 输入 ([!¤]{20,20}Joe Bloggs)
  5. 对于 Replace with 输入 </code> 然后单击 <code>Format 按钮更改为 Bold Tahoma。您应该会在替换框下方看到 Tahoma, bold
  6. 现在按您认为合适的方式正常执行 Find NextReplaceReplace All

注意:Find What 搜索中的 ¤ 字符可以是您确定在目标文本中 不是 的任何字符。