Автоматическое переоформление таблицы



При изменении в ней значений

 

Событие Change объекта Worksheet генерируется при изменении значений в диапазоне рабочего листа. Это событие позволяет автоматизировать переоформление таблицы при изменении в ней значений. Рассмотрим следующую бизнес-ситуацию. В диапазоне В2:В11 расположены данные по расходам за отчетный период фирмы "Родные просторы". Необходимо выделить полужирным шрифтом красного цвета те данные, которые соответствуют максимальному объему расходов, синим цветом — минимальному. Все остальные данные выводятся черным цветом. Кроме того, ячейки, объем расходов в которых превышает средний объем, надо залить желтым цветом. Причем требуется обеспечить автоматическое переформатирование таблицы при изменении значений в ее ячейках (рис. 5.3).

Рис. 5.3. Автоматическое переформатирование таблицы при изменении в ней значений

Для решения этой задачи как раз и пригодится событие Change объекта Worksheet, а как это делается, показано в следующем коде из модуля рабочего листа (листинг 5.37).

Листинг 5.37. Автоматическое переформатирование таблицы при изменении в ней значений.

Модуль рабочего листа

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range

Dim с As Range

Dim max As Double

Dim min As Double

Dim avr As Double

Set rng = Range("B2:B11")

If Not (Application.Intersect(Target, rng) Is Nothing) Then

If Application.WorksheetFunction.CountA(rng) > 0 Then

max = Application.WorksheetFunction.max(rng)

min = Application.WorksheetFunction.min(rng)

avr = Application.WorksheetFunction.Average(rng)

For Each с In rng

If c.Value = max Then

c.Font.Bold = True

c.Font.Color = RGB(255, 0, 0)

Elself c.Value = min Then

c.Font.Bold = False

c.Font.Color = RGB(0, 0, 255)

Else

c.Font.Bold = False

c.Font.Color = RGB(0, 0, 0)

End If

If с.Value > avr Then

c.Interior.Color = RGB(255, 255, 0)

Else

c.Interior.Colorlndex = xlNone

End If

Next

Else

rng.Interior.Colorlndex = xlNone

End If

End If

End Sub


Условное форматирование без применения кода

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

1. Выделите ячейку или диапазон, например, В2:В5

2. Выберите команду Формат ► Условное форматирование .

3. Отобразится окно Условное форматирование . Для простого условного форматирования, как в данном случае, из раскрывающего списка выберите значение . Если же необходимо форматирование на основе формулы, то надо выбрать формула .

4. Определите условие.

5. Нажмите кнопку Формат и определите форматирование (шрифта, границы и заливки), которое надо применить.

6. Для добавления дополнительных условий нажмите кнопку А также.

7. Нажмите кнопку ОК.

Примечание

При условном форматировании нельзя ссылаться на ячейки, расположенные на других листах. Для того чтобы избежать этого ограничения, на исходном листе создайте формулу, ссылающуюся на ячейку другого листа. Например, если необходимо в формуле сослаться на ячейку А1 листа Лист 2, то на исходном листе в какую-либо ячейку введите формулу =Лист2 !А1, а при условном форматировании ссылку давайте уже на эту ячейку. Допустимо также присвоение имени диапазону, после чего на него разрешена ссылка при условном форматировании на любом рабочем листе.

Для удаления условного форматирования совместно со всеми другими форматами выделите искомый диапазон и выберете команду Правка ► Очистить ► Формат.

Для удаления только условного форматирования выделите искомый диапазон, выберете команду Формат ► Условное форматирование и в окне Условное форматирование нажмите кнопку Удалить. Отобразится окно Удаление условного форматирования , предлагающее указать, какие из трех условий следует удалить, даже если такое количество условий и не было определено.

Отображение результата,


Дата добавления: 2019-02-12; просмотров: 218; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!