Страница 1 из 2

Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 01:08
VictorM
Здравствуйте, Господа!
Вопрос такого плана:
есть ли возможность вызвать диалоговое окно "Найти (Find) Заменить (Replace)" в Excel VBA
я не нашел в стандартном списке такого :( xlDialogFindFile есть, а просто Find нет :confused:
может оно не так называется?
Спасибо.

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 01:45
Pavel55
Наверное, что-то в этом роде

Код: Выделить всё

Sub Макрос1()
Dim dlgAnswer
    dlgAnswer = Application.Dialogs(xlDialogFormulaReplace).Show
End Sub

а зачем вам это окно? заменяйте без окна

например, заменяем 5 на 10, с галочкой "ячейка целиком"

Код: Выделить всё

Sub Макрос2()
    ActiveSheet.UsedRange.Replace What:="5", Replacement:="10", LookAt:=xlWhole 'ячейка целиком
End Sub
P.S. LookAt:=xlPart - без галочки "ячейка целиком"

P.P.S. Все виды окон диалогов смотрите в справке VBA по критерию "Built-In Dialog Box Argument Lists"

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 02:11
VictorM
Pavel55, спасибо за совет, но мне нужно именно окно "Найти", собственно "Заменить" и применяться не будет.

P.S. Built-In Dialog Box Argument Lists- здесь я и искал

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 04:18
bi-lya
Я это делал через эмуляцию нажатия на стандартную кнопку

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 09:20
VictorM
bi-lya, простите, и как же?
Можно поподробнее?
Макрорекордер не записывает эти действия.

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 10:02
bi-lya
Ехсел_2003

Код: Выделить всё

Dim kn As CommandBarButton

Set kn = Application.CommandBars.FindControl(Type:=msoControlButton, ID:=1849)

kn.Execute

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 10:27
VictorM
bi-lya, спасибо!
Вот это ТО что нужно!!!
P.S. А где берется эта информация - msoControlButton, ID:=1849 ? Почитать бы :-)
Спасибо

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 12:48
bi-lya
Справка VBA
:D

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 26 янв 2008, 22:39
VictorM
Спасибо. Почитаю.

Re: Диалоговое окно "Найти Заменить" в Excel

Добавлено: 27 янв 2008, 17:30
Teslenko_EA
Здравствуйте VictorM.
This example (from help Microsoft Excel) uses the SendKeys method.

Код: Выделить всё

Application.SendKeys "^f"
Таким способом тоже можно вызвать диалог поиска.
Евгений.