Как отобрать и отформатировать все формулы на листе
Автор Дмитрий Якушев На чтение3 мин. Просмотров51
Что делает макрос: При просмотре рабочей книги Excel нужно иметь четкое представление о всех формулах на каждом листе. Найти все формулы — трудная задача, если все делать вручную. Но Excel предоставляет нам удобный способ поиска и маркировки всех формул на листе. Макрос в этом разделе использует эту функцию, чтобы динамически отобрать и отформатировать все формулы на листе.
Содержание
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
Как макрос работает
В Excel есть набор предопределенных «специальных ячеек», которые можно выбрать с помощью диалогового окна «Перейти к специальному элементу». Чтобы вручную выбрать специальные ячейки, перейдите на вкладку «Главная» на ленте и выберите «Перейти к специальным». Это вызывает диалоговое окно Go To Special. Здесь вы можете выбрать набор ячеек на основе нескольких определяющих атрибутов. Одним из определяющих атрибутов являются формулы. Опция эффективно выделяет все ячейки, которые содержат формулы.
Этот макрос программно делает одно и то же для всей книги одновременно. Вот, мы используем метод SpecialCells из коллекции Cells. Метод SpecialCells требует параметр типа, который представляет тип специальной ячейки. В этом случае мы используем xlCell- TypeFormulas.
Короче говоря, мы имеем в виду специальный диапазон, который состоит только из ячеек, содержащих формулы. Мы ссылаемся в этот специальный диапазон с помощью оператора With … End With. Это утверждение говорит Excel, что любое выполняемое вами действие относится только к тому диапазону, на который вы указали. Здесь мы выделяем ячейки в выбранном диапазоне.
Код макроса
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
Sub OtformatirovatFormuli()
'Шаг 1: Объявляем переменные
Dim ws As Worksheet
'Шаг 2: Избегаем ошибки, если формулы не найдены
On Error Resume Next
'‘Шаг 3: Запускаем цикл через рабочие листы
For Each ws In ActiveWorkbook.Worksheets
'Шаг 4: Выбираем ячейки и выделяем их
With ws.Cells.SpecialCells(xlCellTypeFormulas)
.Interior.ColorIndex = 36
End With
' Шаг 5: Переходим к следующему листу
Next ws
End Sub |
Как этот код работает
- Шаг 1 объявляет объект под названием WS. Это создает контейнер памяти для каждого листа макросов.
- Если таблица не содержит формулы, Excel выдает ошибку. Чтобы избежать ошибки, мы говорим Excel, чтобы продолжить с помощью макроса, если инициируется ошибка.
- Шаг 3 начинает цикл, говоря Excel оценить все рабочие листы в активной книге.
- В этом шаге, макрокоманда выбирает все ячейки, содержащие формулы, а затем форматирует их.
- На шаге 5, мы выполняем цикл заново, чтобы получить следующий лист. После того, как все листы оценены, макрос заканчивает работу.