Excel. Трюки и эффекты | страница 119
Sub CustomSearch()
Dim strFindData As String
Dim rgFound As Range
Dim i As Integer
' Ввод строки для поиска
strFindData = InputBox(«Введите данные для поиска»)
' Просмотр всех рабочих листов книги
For i = 1 To Worksheets.Count
With Worksheets(i).Cells
' Поиск на i-м листе
Set rgFound = .Find(strFindData, LookIn:=xlValues)
If Not rgFound Is Nothing Then
' Ячейка с заданным значением найдена – выделим ее
Sheets(i).Select
rgFound.Select
Exit Sub
End If
End With
Next
' Поиск завершен. Ячейка не найдена
MsgBox («Поиск не дал результатов»)
End Sub
При выполнении данного макроса открывается окно, изображенное на рис. 3.18.
Рис. 3.18. Ввод данных для поиска
В данном окне с клавиатуры следует ввести текст (число, дату и т. п.), который требуется найти, и нажать кнопку ОК. Результатом поиска будет позиционирование курсора в ячейке с искомым текстом. Если же поиск не дал результатов, то на экран будет выведено окно, изображенное на рис. 3.19.
Рис. 3.19. Информационное сообщение
Следует отметить, что поиск данных ведется не только на текущем рабочем листе, но и на всех остальных листах открытой рабочей книги.
Включение автофильтра с помощью макроса
Как известно, включение автофильтра для выделенного диапазона осуществляется на вкладке Данные с помощью кнопки Фильтр. Для этого можно также воспользоваться следующим макросом (листинг 3.61).
Sub EnableAutoFilter()
On Error Resume Next
Selection.AutoFilter
End Sub
Для данного макроса можно создать значок и поместить его на панель инструментов – это позволит включать автофильтр быстрее, чем стандартным способом.
Трюки с форматированием
В данном разделе мы рассмотрим несколько трюков, с помощью которых можно быстро выполнить нестандартное форматирование выделенного диапазона.
Изменение формата представления чисел нештатными средствами
С помощью небольшого макроса можно быстро установить выделенному диапазону ячеек формат «два знака после запятой». Данный макрос выглядит следующим образом (листинг 3.62).
Sub ChangeNumberFormat()
Selection.NumberFormat = «0.00»
End Sub
После выполнения макроса числа в выделенном диапазоне будут отображены с двумя знаками после запятой (например, число 54 будет показано как 54,0 0).
Для форматирования ячеек с использованием разделителя по разрядам можно применить такой макрос (листинг 3.63).