使用range.find查找粗体文本时,如果整个选择都是粗体,则无法找到!

时间:2009-06-10 11:29:34

标签: vba word-vba

我正在尝试使用range.find方法提取粗体文本,除非整个范围实际上是粗体(不太可能发生,更多是边缘条件),所有都是桃子色。

With rngFindRange.Find
.ClearFormatting
.Font.Bold = True
Do
    .Execute

    If Not .Found Then
         Exit Do
    End If

    'do something with found text'

    Set rngFindRange = ActiveDocument.Range(rngFindRange.End + 1, Selection.End)

Loop

以上匹配粗体文本的开头或右边的结尾,即使是两个,但不是整个范围都是粗体。我想在搜索范围之前我可能需要测试range.font.bold = true。 stackoverflow的想法是什么?

1 个答案:

答案 0 :(得分:6)

这应该找到任何粗体文字:

Sub SearchBoldText()
    Dim rng As Range
    Set rng = ThisDocument.Range(0, 0)
    With rng.Find
        .ClearFormatting
        .Format = True
        .Font.Bold = True
        While .Execute
            rng.Select
            rng.Collapse direction:=wdCollapseEnd
        Wend
    End With
    Set rng = Nothing
End Sub