Страницы: 1
RSS
Как вызвать окно поиска Ctrl+F при помощи макроса?, Вызвать окно поиска макросом.
 
Здравствуйте.
Необходимо решить простую задачу. Как макросом вызвать окно поиска, аля нажатие сочетания клавиш Ctrl+F?
Пробовал следующим образом, но оно не всегда работает, даже я бы сказал вообще практически не работает.
Код
SendKeys "^f"
Пытался искать по форуму, но поиск не работает у меня.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Код
 Application.Dialogs(64).Show
 
Прям стандартное вряд ли получится, но можно что-то вроде того:
Код
Application.Dialogs(xlDialogFormulaReplace).Show
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Hugo, The_Prist
Большое спасибо.
Всё вроде хорошо, но никак по выделенному диапазону не поискать.
Получается что форма поиска по верх лежит и за её пределы не шагнуть. грустно.
А как вообще можно узнать какой командой открываются эти окна при сочетании различных клавиш?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
CAHO пишет: как вообще можно узнать какой командой открываются эти окна
В смысле как открыть из VBA?
Думаете я наизусть помню?  :)  

Код
Sub tt()
    On Error Resume Next
    For i = 1 To Application.Dialogs.Count
        Application.StatusBar = "Application.Dialogs(" & i & ").Show"
        Application.Dialogs(i).Show
    Next
    Application.StatusBar = False
End Sub

 
 
Hugo спасибо, все пересмотрел, а нужного не нашёл.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
А вариант из #2?
 
Юрий, вариант 2 тоже не работает в плане выделения.
Решил подойти с другого конца и сделал так
Код
Sub Reshenie()
Application.ScreenUpdating = False
    SendKeys ("%")
    SendKeys ("z")
    SendKeys ("]")
    SendKeys ("y")
Application.ScreenUpdating = True
End Sub
Проверил в 2013 работает хорошо. У кого другие версии проверьте работает ли такое спагетти?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
CAHO пишет: вариант 2 тоже не работает в плане выделения.
Не пойму - что нужно выделять?
 
Выделить определённый диапазон мышкой и произвести поиск по нему. Предположим выделил только столбец А нажал Ctrl+F, ввёл поиск и он ищет только по столбцу А. Потом выделил диапазон другой и он уже ищет только в том диапазоне, а не во всей книге. Мне именно это надо осуществить, вот почему необходимо стандартное поисковое окно.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
CAHO пишет: Потом выделил диапазон другой
Вот теперь понял)) А то удивлялся - почему нельзя (вручную или программно) выделить нужный диапазон до того, как))
 
Ещё так можно
Код
Application.CommandBars.ExecuteMso "FindDialogExcel"
 
Alexander88, это вообще идеально работает. Вот его и буду юзать.
Спасибо
Про такое я не знал. Покопался в итернете нашёл табличку с командами тут.
Изменено: CAHO - 13.02.2015 15:03:04 (Добавил табличку)
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Ребят, почему после вывода диалогового окна поиска через эту команду:
Код
Application.CommandBars.ExecuteMso "FindDialogExcel"
Макрос изменения выделения ячейки перестаёт исполняться. Вот этот
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Что это может быть?
Вызываю окно поиска, потом просто закрываю его, и ничего не работает потом.
Изменено: Radomir-m - 12.09.2020 20:34:06
 
да что ж за день-то такой, Radomir-m, уже не смешно - где файл?
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
CAHO написал:
Всё вроде хорошо, но никак по выделенному диапазону не поискать.
вы интересовались как вызвать окно поиска. получили ответ?
есть следующие вопросы - формируйте след. темы
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, этому сообщению более 5 лет  ;)
Соблюдение правил форума не освобождает от модераторского произвола
 
а я сегодня увидел в первый раз
извините за очень тупую и прямолинейную логику
в сообщении 1 и в теме "как вызвать окно поиска"
в сообщении 2 ответ как это сделать
что еще?  что тут еще обсуждать?
зачем из нормально сформулированной темы с нормальным ответом по теме делать мусорник?
мне кажется что динозавры вымерли не справедливо,! давайте обсудим этот вопрос в рамках данной темы "как вызвать окно поиска"
Изменено: Ігор Гончаренко - 12.09.2020 22:40:16
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Radomir-m написал:
просто закрываю его, и ничего не работает потом
да, возможно такое при подобной команде. Попробуйте после вызова выполнить:
Код
Application.CommandBars.ReleaseFocus
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх