我尝试在Word VBA中使用Find.FindText来查找单词的前几个字母,然后选择该单词的其余部分。例如,如果我有: "你好,AB-1234-123检查"
我会找到" AB - "然后选择单词的其余部分以获得" AB-1234-123"。我不能使用空格作为我的MoveEndUntil(""),因为有时,这个词以句点结束。
到目前为止,我的代码是
SearchString = "AB-"
With Rng.Find
Do While .Execute(FindText:=SearchString, Forward:=True) = True
Rng.MoveEndUntil (" ")
MsgBox (Rng.Text)
Loop
End With
答案 0 :(得分:0)
也许您可以选择找到的单词部分,然后将其展开为整个单词?
Selection.Expand Unit:=wdWord
答案 1 :(得分:0)
您仍然可以使用MoveEndUntil
。如果查看方法的“帮助”主题,您会看到第一个名为 CSet 的参数可以包含多个字符。所以它可以寻找空间以及句号,逗号,分号等。
在测试代码的过程中,我也注意到,就目前而言,它将进入一个连续的循环 - 总是只找到第一个实例。所以我用Collapse
方法处理了这个问题,以便下一个查找序列在最后一个“找到”范围之后立即开始。
Dim rng As word.Range
Dim SearchString As String
Set rng = ActiveDocument.content
SearchString = "AB-"
With rng.Find
Do While .Execute(findText:=SearchString, Forward:=True) = True
rng.MoveEndUntil (" .,;!")
MsgBox rng.Text
rng.Collapse wdCollapseEnd
Loop
End With