Word VBA Range.Find对象工作不正常

时间:2010-10-19 06:03:10

标签: vba debugging ms-word find range

我发现了一件有趣的事情:

在word 2010中,选择一些文本,然后运行以下VBA代码:

public Sub Test()
    With Selection.Range.Find
        MsgBox .Execute(Selection.Range.text) 
        MsgBox .Found
    End With
End Sub

两个消息框都说“False”,但两者都应为“True”。为什么呢?

1 个答案:

答案 0 :(得分:0)

非常有趣!

Word 2007表现出相同的行为。

奇怪的是,这不仅仅是在您从VBA搜索时:如果您在文档中选择了一些文本并按“查找”,则查找对话框将默认显示所选文本作为目标。
按“查找下一个>” Word显示错误消息“Word已到达文档的末尾...等”。

如果您修改文本以搜索删除最后一个字符,则不会发生这种情况。 VBA与此一致:下面的代码有效!

Sub tt()
    With Selection.Range.Find    
       MsgBox .Execute(Mid(Selection.Range.Text,1,Len(Selection.Range.Text)-1))  
       MsgBox .Found  
    End With  
End Sub

未解决......但证明与GUI一致。

HTH!