2009-06-10 47 views
2

我试图使用range.find方法提取粗体文本,除非整个范围实际上是粗体(不太可能发生太多,它更多的是边缘条件),否则所有内容都是桃色的。使用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认为?

回答

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 
+0

感谢guillermooo,不正是我之后,但一个有用的技术没有-的少,我给你一个了投票为:-) – Kevin 2009-06-11 13:41:48