Создать макрос (процедуру-подпрограмму), обеспечивающий следующие действия:
- отмену ранее существующей заливки ячеек таблицы;
- заливку желтым цветом ячеек таблицы, в которых стоимость продаж превышала среднюю стоимость ежедневных продаж по всей таблице.
Создадим макрос на вкладке «Разработчик», пишем текст:
Затем уберем заливку из ячеек с данными.
Далее в цикле просуммируем все значения стоимости продаж по всей таблице, а также найдем общее число дней. Затем найдем среднюю стоимость, разделив общую сумму на общее число дней.
Затем в цикле переберем все ячейки с данными о продажах и сравним их со средней стоимостью. Если значение в ячейке больше средней стоимости, то закрасим ее желтым цветом
Общий список всех сообщений по этой работе
- отмену ранее существующей заливки ячеек таблицы;
- заливку желтым цветом ячеек таблицы, в которых стоимость продаж превышала среднюю стоимость ежедневных продаж по всей таблице.
Создадим макрос на вкладке «Разработчик», пишем текст:
Sub Заливка_ячеек()Сначала нужно определить пользовательский диапазон, чтобы не зависеть от жестко заданного числа строк. Это можно сделать и другими способами, один из них указан в общем описании (ссылка внизу).
Dim rng As Range
Dim c As Integer
Dim r As Integer
Dim sum As Double
Dim sred As Double
Dim cnt As Integer
'установка пользовательского диапазона
'для определения количества занятых строк
Set rng = ActiveSheet.UsedRange
'отмена предыдущей заливки
Range(rng.Cells(3, 3), rng.Cells(rng.Rows.Count, 9)).Interior.Pattern = xlNone
'обнуляем сумму и счетчик ячеек с данными
sum = 0
cnt = 0
'суммируем выпуск по всем ячейкам со стоимостью продаж
'считаем количество дней
For r = 3 To rng.Rows.Count
For c = 3 To 9
sum = sum + Cells(r, c)
cnt = cnt + 1
Next c
Next r
'рассчитываем среднюю стоимость продаж по всей таблице
sred = sum / cnt
'если текущее значение больше среднего, то
'производится заливка желтым цветом
For r = 3 To rng.Rows.Count
For c = 3 To 9
If Cells(r, c) > sred Then Cells(r, c).Interior.Color = RGB(255, 255, 0)
Next c
Next r
Set rng = Nothing 'Освобождение памяти
End Sub
Затем уберем заливку из ячеек с данными.
Далее в цикле просуммируем все значения стоимости продаж по всей таблице, а также найдем общее число дней. Затем найдем среднюю стоимость, разделив общую сумму на общее число дней.
Затем в цикле переберем все ячейки с данными о продажах и сравним их со средней стоимостью. Если значение в ячейке больше средней стоимости, то закрасим ее желтым цветом
Дополнительные материалы к этому посту
Общее описание и подробности для всех вариантов, список вариантовОбщий список всех сообщений по этой работе
