2012-05-30 59 views
0

我想查找具有某種顏色的文檔中的所有文本並將其打印在調試窗口中。'查找所有'方法

Sub FindText() 
    Selection.Find.Font.Color = 3539877 
    Selection.Find.Execute 
    Debug.Print Selection 
End Sub 

問題是它只給我下一個結果,而我想要一次打印所有結果。據我所知,'FindAll'方法不可用。也許我可以訪問包含所有查找結果的數組。

此外,稍微不相關的,是否可以將所有結果複製到剪貼板而不是打印它們?

回答

0

您必須在循環中執行查找。看到這個例子。我將查找結果存儲在一個數組中

Option Explicit 

Sub FindText() 
    Dim MyAR() As String 
    Dim i As Long 

    i = 0 

    Selection.HomeKey Unit:=wdStory 
    Selection.Find.Font.Color = -671023105 

    Do While Selection.Find.Execute = True 
     ReDim Preserve MyAR(i) 
     MyAR(i) = Selection 
     i = i + 1 
    Loop 

    If i = 0 Then 
     MsgBox "No Matches Found" 
     Exit Sub 
    End If 

    For i = LBound(MyAR) To UBound(MyAR) 
     Debug.Print MyAR(i) 
    Next i 
End Sub 
+0

是的,那「do while」循環做了訣竅。非常感謝! – Daan

相關問題