VBA。执行findText:=多个选项

时间:2018-11-29 12:54:50

标签: vba ms-word

我有一个脚本,该脚本将浏览大约800个文档,并在特定部分添加一些措辞。在大多数情况下,该部分的措词非常具体,但并不总是完全相同。

我想为宏创建一种搜索几种不同可能性的方法,到目前为止,对于实际的查找和附加,我有以下方法:

Sub newLines()
    With Selection.Find
        .Execute findText:="specific wording"
    End With

    Selection.EndOf unit:=wdCell
    Selection.TypeParagraph
    Selection.Paste

End Sub

我想创建一些东西来为findText:= param提供更多选择。

.Execute findText:= "specific wording" Or "specific wording 2" Or "specific wording3"

那只是pusdo代码,但是如果有什么可以赋予我这种功能的类型,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

为您提供两个示例。 正如辛迪所说。尽量避免选择,但我知道有时是不可能的。

Sub test1()
    Dim i As Long
    Dim arr As Variant
    arr = Array("specific wording 2", "specific wording 3", "specific wording 4")

    Selection.Find.ClearFormatting
    For i = LBound(arr) To UBound(arr)
        Selection.HomeKey wdStory
        Selection.Find.Execute FindText:=arr(i)
        Do While Selection.Find.Found
            'do your stuff
            Selection.Find.Execute
        Loop
    Next i
End Sub



Sub test2()
     Selection.Find.ClearFormatting
     Selection.Find.MatchWildcards = True
     Selection.HomeKey wdStory
     Selection.Find.Execute FindText:="specific wording [0-9]"
     Do While Selection.Find.Found
         'do your stuff
         Selection.Find.Execute
     Loop
End Sub