MS Word,使用通配符查找

时间:2018-08-05 16:53:35

标签: vba ms-word wildcard

首先,我对VBA完全没有经验。现在,我正在做一个项目,我需要在200个MS字文件中找到一些字。这些词以space开头,以:(冒号)结束

例如: ...frauuaṣ̌īmca。 yz: yeŋ́h /ē。:hātąm; yaθā。:啊。 vairii /ō; ...

我需要提取yz&yeŋ́h /ē。和yaθā。

我无法写任何适当的通配符来仅选择:(冒号)之前的最后一个单词

MS Word查找第一和第二之间的所有内容:

我尝试了[!space]?:,但并非总是返回正确的答案。 例如,在这种情况下,只需返回/或特殊字符后的所有内容。 派蒂。 ī frauuarāne:; hāuuanə̄/ e :; sāuuaŋhə̄e:; raθβ±m :; y /aθā。啊。

=> ne代替frauuarāne,或/ e代替hāuuanə̄/ e

谢谢

1 个答案:

答案 0 :(得分:0)

有几种方法可以执行此操作...因为我不知道RegEx是不是真的,所以我还是选择了VBA;

Sub ExtractWords()
    Dim myArray, x, strOut As String
    myArray = Split(ActiveDocument.Content, " ") 'split doc into array by space
    For Each x In myArray
        If InStr(x, ":") > 0 Then 'if there's a colon...
            strOut = strOut & Split(x, ":")(0) & vbLf '...then get everything up to it
        End If
    Next x

    Documents.Add 'create new word document
    Selection.TypeText strOut 'dump result string to new doc
End Sub

运行此过程将提取所有以空格开头和以冒号结尾的文本,并将结果转储到新的Word文档中。

我怀疑您有没有想到的字符或空格,因此可能需要进行调整。

一如既往,请在运行之前备份您的文档(并且由于我没有明确引用该文档,所以最好只打开一个文档)。