首先,我对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
谢谢
答案 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文档中。
我怀疑您有没有想到的字符或空格,因此可能需要进行调整。
一如既往,请在运行之前备份您的文档(并且由于我没有明确引用该文档,所以最好只打开一个文档)。