Word VBA Range.Find объект работает некорректно
Я нашел интересную вещь:
В слове 2010 выберите текст и запустите следующий код VBA:
public Sub Test()
With Selection.Range.Find
MsgBox .Execute(Selection.Range.text)
MsgBox .Found
End With
End Sub
В обоих сообщениях указано "False", но оба должны быть "True". Зачем?
1 ответ
Очень интересно!
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.
НТН!