Страницы

четверг, 1 октября 2015 г.

Пользовательские функции Excel Часть 2-2 Вариант 5



Создать макрос (процедуру-подпрограмму), обеспечивающий следующие действия:
- отмену ранее существующей заливки ячеек таблицы;
- заливку зеленым цветом ячеек таблицы с максимальной дневной отработкой (по всей таблице).
Как создать макрос, описано по ссылке внизу. Создаем и пишем текст:

Sub Заливка_ячеек()
Dim rng As Range
Dim c As Integer
Dim r As Integer
Dim max As Integer
'установка пользовательского диапазона
'для определения количества занятых строк
Set rng = ActiveSheet.UsedRange
'отмена предыдущей заливки
Range(rng.Cells(3, 4), rng.Cells(rng.Rows.Count, 10)).Interior.Pattern = xlNone
'первоначальный максимум равен значению первой ячейки диапазона
max = Cells(3, 4)
'поиск максимума по всем ячейкам с данными дневной выработки
For r = 3 To rng.Rows.Count
    For c = 4 To 10
        If max < Cells(r, c) Then max = Cells(r, c)
    Next c
Next r
'если текущее значение равно максимальному, то
'производится заливка красным  цветом
For r = 3 To rng.Rows.Count
    For c = 4 To 10
        If max = Cells(r, c) Then Cells(r, c).Interior.Color = RGB(0, 255, 0)
    Next c
Next r
Set rng = Nothing   'Освобождение памяти
End Sub

Сначала определим пользовательский диапазон, то есть диапазон ячеек, в которых есть данные. Очистим ячейки с данными выработки от предыдущей заливки.
Затем с помощью вложенных циклов найдем максимальное значение во всей таблице. Затем снова пройдем все ячейки в цикле, но будем сравнивать с найденным максимальным значением. Если значение текущей ячейки равно максимальному, то закрашиваем ее цветом.

Дополнительные материалы к этому посту

Общее описание и подробности для всех вариантов, список вариантов

Общий список всех сообщений по этой работе