Страницы

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

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

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

Создадим макрос:

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

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

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

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