Как очистить условие поиска и слово после поиска в excel vba

101
10

сценарий

У меня есть пользовательская форма, в которой кнопка на ней выполняет функцию поиска с MatchCase = True в дополнение к другим автоматическим работам. Всякий раз, когда эта пользовательская форма активна, и я пытаюсь выполнить поиск в других открытых книгах, всегда имеет значение Match Case. Каждый раз, когда мне нужно вручную отключить случай соответствия в excel, пока эта пользовательская форма активна. Пожалуйста, смотрите фотографии

Когда пользовательская форма не отображается

enter image description here

Когда пользовательская форма показывает

enter image description here

Вопрос

Есть ли способ, которым я могу запустить свой макрос с MatchCase = True, но в то же время, когда я открываю другие книги и нажимаю Ctrl + F Matchcase по умолчанию unchecked? Другими словами, как удалить ключевое слово поиска и условие поиска после выполнения макроса поиска? Я использую следующие поисковые коды с поисковым словом в качестве переменной worD

Selection.Find(What:=worD, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate

спросил(а) 2021-01-19T15:02:52+03:00 8 месяцев назад
1
Решение
91

Выполняйте Dummy-Search, когда вы закончите

Sub clearFind(ws As Worksheet)
With ws.Cells
.Find What:="", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False
End With
End Sub

ответил(а) 2021-01-19T15:02:52+03:00 8 месяцев назад
46

В теории, возможно, вы можете использовать SendKeys, но по моему опыту это НЕ НАДЕЖНО.

 ' here set a variable to search. After that:
Application.SendKeys ("^f")
Application.SendKeys ("{DELETE}")
' and finally paste variable.value via SendKeys

ответил(а) 2021-01-19T15:02:52+03:00 8 месяцев назад
46

Как и некоторые участники здесь, в переполнении стека, простой подход - это фиктивный поиск, который очищает случай соответствия и историю поиска.

Sub dummySearch()
dummy = Cells.Find(What:="", LookIn:=xlValues, LookAt:=xlPart)
End Sub

ответил(а) 2021-01-19T15:02:52+03:00 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема