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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Здравствуйте, Господа!
Вопрос такого плана:
есть ли возможность вызвать диалоговое окно "Найти (Find) Заменить (Replace)" в Excel VBA
я не нашел в стандартном списке такого :( xlDialogFindFile есть, а просто Find нет :confused:
может оно не так называется?
Спасибо.
Pavel55
Сообщения: 418
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

Наверное, что-то в этом роде

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

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"
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Pavel55, спасибо за совет, но мне нужно именно окно "Найти", собственно "Заменить" и применяться не будет.

P.S. Built-In Dialog Box Argument Lists- здесь я и искал
bi-lya
Сообщения: 97
Зарегистрирован: 07 июн 2007, 14:08

Я это делал через эмуляцию нажатия на стандартную кнопку
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

bi-lya, простите, и как же?
Можно поподробнее?
Макрорекордер не записывает эти действия.
bi-lya
Сообщения: 97
Зарегистрирован: 07 июн 2007, 14:08

Ехсел_2003

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

Dim kn As CommandBarButton

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

kn.Execute
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

bi-lya, спасибо!
Вот это ТО что нужно!!!
P.S. А где берется эта информация - msoControlButton, ID:=1849 ? Почитать бы :-)
Спасибо
bi-lya
Сообщения: 97
Зарегистрирован: 07 июн 2007, 14:08

Справка VBA
:D
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Спасибо. Почитаю.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте VictorM.
This example (from help Microsoft Excel) uses the SendKeys method.

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

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