Word VBA 仅格式化查找替换字符串的一部分(格式化以字符串开头的段落)

Word VBA 仅格式化查找替换字符串的一部分(格式化以字符串开头的段落)

我需要格式化(隐藏)以某个单词开头的所有段落。我使用了查找替换

'----set replacement format
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find.Replacement.font
        .Size = 9
        .Color = wdColorTurquoise colour
        .Hidden = True
    End With

'----"COMPARE" AT START OF LINE
    With Selection.Find
        .text = "^13Compare: *^13" 'TODO: need to apply format to PART-exclude 1st para mark!
        .Replacement.text = "" 'keeps original string, just applies repl format to it
        .Forward = True
        .Wrap = wdFindStop
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

为了找到它们,我必须搜索"^13String*^13",以避免在其他地方出现相同的字符串。

但是如果我隐藏整个查找字符串,前一段末尾的段落标记就会丢失。

有没有办法改变除第一个 ^13 之外的所有内容的格式?

答案1

如果您不使用查找和替换,而是循环遍历文档中的所有段落,检查第一个单词是否为“比较:”,如果是,则将该段落的字体设置为隐藏,会怎么样?

Dim par As Paragraph
For Each par In ActiveDocument.Paragraphs

    If InStr(1, par.Range.Text, "Compare:") = 1 Then par.Range.Font.Hidden = True
        
Next

相关内容