Найдите минутку и откройте вкладку «Найти» диалогового окна «Найти и заменить». Самый простой способ сделать это — нажать Ctrl + F. Когда диалоговое окно открывается впервые (см. Рисунок 1), Excel делает определенные предположения о том, что именно вы хотите искать. То, что вы хотите искать, определяется настройкой раскрывающегося списка Внутри. (Возможно, вам потребуется нажать кнопку «Параметры», чтобы увидеть раскрывающийся список «Внутри».)

image

Рисунок 1. Вкладка «Найти» диалогового окна «Найти и заменить».

Когда вы впервые открываете диалоговое окно, для параметра «Внутри» по умолчанию установлено значение «Лист». Этот параметр действует независимо от того, выбираете ли вы один или несколько листов перед отображением диалогового окна.

Если вы хотите, чтобы в раскрывающемся списке «Внутри» по умолчанию использовалась «Рабочая книга» (вместо «Лист»), указать это в Excel невозможно. Вы можете найти некоторое утешение в том факте, что настройка раскрывающегося списка Внутри сохраняется для текущего сеанса работы с Excel. Другими словами, если вы установите для него значение «Рабочая книга», завершите поиск, а затем выполните еще один поиск, тогда параметр «Внутри» будет постоянным; он по-прежнему установлен в Workbook.

Интересно, что на первый взгляд кажется, что решить эту проблему с помощью макроса невозможно. Это связано с тем, что Excel не позволяет макросу легко отображать и изменять параметры в диалоговом окне «Найти и заменить». Многие диалоговые окна могут отображаться с помощью коллекции Dialogs, но не с помощью функции «Найти и заменить». Вместо этого VBA позволяет отображать старую версию диалогового окна «Найти», используя этот код:

Sub ShowFind1()

Application.Dialogs(xlDialogFormulaFind).Show End Sub

К сожалению, в этой версии диалогового окна «Найти» нет элемента управления, позволяющего указать область поиска, как это можно сделать с помощью раскрывающегося списка «В пределах» на вкладке «Найти» диалогового окна «Найти и заменить».

Есть способ отобразить правильное диалоговое окно «Найти и заменить», но не с помощью коллекции Dialogs. Вместо этого вам нужно открыть диалоговое окно с помощью коллекции CommandBars, которая, по сути, отображает диалоговое окно с помощью команды меню. (Довольно иронично, если подумать — в Excel больше нет меню, но вы все еще можете получить доступ к коллекции CommandBars для отображения диалоговых окон с помощью меню.) Вот как это сделать:

Sub ShowFind2()

ActiveSheet.Cells.Find What:="", LookAt:=xlWhole     Application.CommandBars("Worksheet Menu Bar").FindControl( _       ID:=1849, recursive:=True).Execute End Sub

Метод Find позволяет вам устанавливать различные параметры в диалоговом окне «Найти и заменить», а затем осуществляется доступ к объекту CommandBars для фактического отображения диалогового окна.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10348) относится к Microsoft Excel 2007 и 2010. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Searching_a_Workbook_by_Default [Поиск в книге по умолчанию].