Трюк №92. Как обойти ограничение Excel 2003 на три критерия условного форматирования


Трюк №92. Как обойти ограничение Excel 2003 на три критерия условного форматирования



Чтобы при условном форматировании использовать больше трех критериев для данных, можно применить трюк с использованием VBA. В действительности, благодаря этому коду, можно использовать практически неограниченное количество критериев.

В Excel есть очень полезная возможность под названием условное форматирование (которое подробнее рассматривается здесь и здесь). Чтобы воспользоваться ею, нужно выбрать команду Главная → Условное форматирование (Home → Conditional Formatting) на панели меню рабочего листа. Эта возможность позволяет форматировать ячейки в зависимости от их содержимого. Например, можно изменить фоновый цвет всех ячеек, значение в которых больше 5, но меньше 10, на красный. Хотя это удобно, Excel 2003 поддерживает только три условия, которых иногда не хватает.

Указать более трех условий можно благодаря коду Excel VBA, который запускается автоматически, когда пользователь изменяет указанный диапазон. Чтобы увидеть, как это работает, предположим, есть шесть отдельных условий в диапазоне А1:А10 на определенном рабочем листе. Введите некоторые данные (рис. 7.9).

Рис. 7.9. Данные для эксперимента с условным форматированием

Рис. 7.9. Данные для эксперимента с условным форматированием

Сохраните рабочую книгу, перейдите на рабочий лист, правой кнопкой щелкните ярлычок с его именем, в контекстном меню выберите команду Исходный текст (View Code) и введите код из листинга 7.20.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Листинг 7.20
Private Sub Worksheet_Change(ByVa1 Target As,Range)
 
Dim icolor As Integer
If Not Intersect(Target. Range("A1:A10")) is Nothing Then
Select Case Target
	Case 1 To 5
		icolor = 6
	Case 6 То 10
		icolor = 12
	Case 11 To 15
		icolor = 7
	Case 16 To 20
		icolor = 53
	Case 21 To 25
		icolor = 15
	Case 26 To 30
		icolor = 42
	Case Else
//Whatever
End Select
	Target.Interior.Colorlndex = icolor
End If
 
End Sub

Закройте окно, чтобы вернуться на рабочий лист. Результат должен выглядеть, как на рис. 7.10.

Рис. 7.10. Данные после ввода кода

Рис. 7.10. Данные после ввода кода

Фоновый цвет каждой ячейки должен измениться в зависимости от числа, переданного переменной icolor, которая, в свою очередь, передает это число Target.Interior.Colorlndex. Передаваемое число определяется строкой Case x То х.

Например, если вы введете число 22 в любую ячейку в диапазоне А1:А10, то переменной icolor будет передано число 15, которое затем эта переменная (теперь имеющая значение 15) передает Target.Interior.Colorlndex, делая ячейку серой. Целью всегда является ячейка, значение в которой было изменено, что и вызвало запуск кода.

Ремонт квартир под ключ москва может быть капитальным и косметическим. Вы можете делать его самостоятельно или прибегнуть к помощи ремонтной бригады, но в том и другом случае придется вначале решить, какого результата вы ожидаете: евроремонта, ремонта в авангардном стиле или нечто другое. А затем следует выбрать необходимые инструменты, стройматериалы и прочие вспомогательные средства. Если вы делаете ремонт самостоятельно, то знание последовательности проведения работ (с чего начать замена сантехники, ремонт потолка, стен, окон, полов н т. д.) будет для вас не лишним.

16.02.20133941

»Трюки с макросами » Трюк №92. Как обойти ограничение Excel 2003 на три критерия условного форматирования




Читайте ранее:
Трюк №91. Получение имени и пути рабочей книги Excel

Иногда бывает необходимо, чтобы ячейка могла вернуть имя рабочей книги или даже имя файла и путь для этой рабочей книги....

Закрыть