Нека да нарисуваме картина на Monalisa и да оставим Пикасо да използва VBA. Готови, подгответе се …
Изчакайте! Изчакайте! Дръжте конете си. Просто ще използваме VBA за условно форматиране и това е по -лесно от това да рисувате? оформена птица.
Общият синтаксис на VBA условно форматиране
Ако условие от Range (range) .Interior.ColorIndex = 1-56
Проверете състоянието си при условието и след това форматирайте диапазона си, като използвате свойството .iteriour.colorindex на обекта Range. Цветовият индекс има 56 цвята. Отидете да играете Холи с тях и проучете кое число притежава кой цвят.
Сега нека го разберем с пример
Пример: VBA код за условно форматиране на клетки
Така че, това е сценарият, имаме списък на случайни хора с тяхната възраст и възрастова група.
Колко лесно би било, ако можеш да кажеш на възрастовата група човек, само като погледнеш имената му.
Сега, за да направя това, искам VBA формат ИМЕН ЧЕРВЕН, ако е възрастен, ЖЪЛТ, ако е тийнейджър, и ЗЕЛЕН, ако е ДЕТЕ и нищо, ако клетката е празна.
ПодформатUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) За всяка клетка В rng If клетка. Value2 = "Adult" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Тогава Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Край Ако следващата клетка Край Под
За да стартирам този код направо от листа, нарисувах бутон на същия лист и му присвоих този макрос. Сега, когато щракнете върху бутона „Форматиране“, вашият код ще се изпълнява и ще актуализира клетките с имена с цвят в зависимост от тяхната възрастова група. Как? Нека разберем.
Код Обяснение:
Dim rng As RangeDim lastRow As Long Тези два реда са променливи декларации. rng за Range, който съдържа възрастовата група и lastRow за получаване на последния непразен номер на ред.
lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Този ред връща номера на последния ред в променливата lastRow.
Set rng = Range ("C2: C" & lastRow) Този ред задава диапазона, започващ от C2 и до последния ред. Това прави кода ви динамичен. Добавяте нови редове към данните си и те ще откриват и ще се съхраняват в нов диапазон в променлива rng.
За всяка клетка В rng If cell.Value2 = "Adult" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Тогава Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 End If Next клетка
Това е основният сегмент.
За всяка клетка В rng
Първият ред изпълнява цикъла до всички клетки във вашия диапазон. Ако cell.Value2 = "Възрастен" Тогава
Следващият ред е проверка на състоянието. Той проверява дали текущата стойност на клетката е Adult или не.
Ако отговорът е „да“, следващият ред се изпълнява, в противен случай той прескача към следващия оператор if. Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Сега, ако условието IF връща TRUE, този ред задава цвета на клетката на ColorIndex 3, който е за RED.
По същия начин следващите оператори IF се изпълняват и предприемат действия, както е посочено.
Така че да, можете условно да форматирате диапазони с помощта на VBA. Интериорният метод на обекта Range контролира много други свойства за форматиране. Трябва да си играете с тях, това няма да навреди, но определено ще се научите. И ако се сблъскате с някакви трудности от това, за което съм тук. Задайте вашите въпроси в секцията за коментари.
Свали файл
Условно форматиране с помощта на VBA в Microsoft ExcelПопулярни статии:
50 преки пътища в Excel за повишаване на вашата производителност
Как да използвате функцията VLOOKUP в Excel
Как да използвате функцията COUNTIF в Excel
Как да използвате функцията SUMIF в Excel