Условно форматиране в Excel VBA

В отличие всички ние използвахме условно форматиране за подчертаване на дублирани стойности. Използва се основно условно форматиране за получаване на дублирани стойности. Можем да подчертаем дублиращи се стойности по много начини. Можем да откроим дублиращите се стойности, да определим специфичните стойности и също така да определим правилото за изпълнение на критериите за форматиране. По-долу са променливите функции, налични в Условно форматиране.

Но какво ще стане, ако можем да автоматизираме този процес на подчертаване на дубликат или всякакъв вид стойности според нашето изискване. Критериите, които можем да определим с помощта на условно форматиране в Excel, можем да направим и във VBA. За прилагане на условно форматиране можем да изберем всяка клетка, обхват, наличен в работния лист на Excel. Условното форматиране работи само когато определените критерии отговарят на изискването. Освен това, тя няма да покаже промяна в цвета. С помощта на условно форматиране във VBA можем да променим цвета на всяка клетка или съдържание на клетка, да изтрием цвета на клетката или да премахнем и цвета. Освен да променим цвета на клетката, можем да променим съдържанието на клетката в Смел текст или Курсив текст. След като направим, можем да отменим и всички промени.

Как да използвате условно форматиране в Excel VBA?

По-долу са различните примери за използване на функция условно форматиране в Excel чрез използване на VBA код.

Можете да изтеглите този шаблон на VBA условно форматиране Excel тук - VBA Условно форматиране на Excel шаблон

VBA Условно форматиране - Пример №1

Имаме данни за някои числа и текст, както е показано по-долу в колона A и B. Сега вече сме категоризирали цвета, който трябва да дадем на номер и текст, който е в клетка D2. Определихме жълт цвят за номер 1 и азбука А и зелен цвят за номер 2 и азбука Б.

Въпреки че VBA Условното форматиране може да бъде реализирано в Модул, но писането на кода за Условно форматиране в Лист ще накара кода да работи само в този лист. За това, вместо да отидете на опция Модул, щракнете върху раздела Вмъкване, за да вмъкнете модул.

Стъпка 1: Сега от първото падащо меню изберете Работен лист, който по подразбиране ще бъде Общ и от падащото меню автоматично ще изберете опцията SelectionChange, както е показано по-долу.

Стъпка 2: След като направим това, тя автоматично ще активира частната подкатегория и целевата клетка ще бъде като Range.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Край Sub 

Стъпка 3: Сега напишете кода, първо определете променлива MyRange като Range . Или можете да изберете друго име вместо MyRange според вашия избор.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range End Sub 

Стъпка 4: Използвайте Set и изберете определения диапазон, както е показано по-долу.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = End Sub 

Стъпка 5: След това изберете работния лист, където искаме да приложим условното форматиране. Ето нашия лист е Sheet1. Можем да поставим последователността също като 1, вместо да пишем Sheet1. И след това изберете обхвата на онези клетки, които трябва да форматираме. Тук нашата гама е от клетка А1 до В8.

Код:

 Частен под работен лист_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове („Sheet1“). Диапазон („A1: B8“) End Sub 

Стъпка 6: Сега отворете контура за всеки следващ, както е показано по-долу. И започнете с това, като изберете променливата MyRange, дефинирана в клетката .

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове („Sheet1“). Диапазон („A1: B8“) за всяка клетка в MyRange Next End Sub 

Стъпка 7: Сега отново отворете контура If-Else.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове („Sheet1“). Диапазон („A1: B8“) за всяка клетка в MyRange, ако край ако Next End Sub 

Това е регионът, където бихме присвоили цветовете на всички числа и азбуки, налични в нашата гама.

Стъпка 8: Напишете кода, ако стойността на клетката е 1, тогава оцветете в интериора, избраната клетка за диапазон, която е от А1 до В8, ще бъде зелена. А за зелено имаме цветен код, присвоен му като 6.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове ("Sheet1"). Диапазон ("A1: B8") за всяка клетка в MyRange Ако Cell.Value като "1", тогава Cell.Interior.ColorIndex = 6 Край, ако Next End Sub 

Стъпка 9: Сега за стойността на клетката номер 2. Друго, ако стойността на клетката на която и да е клетка от избрания диапазон е 2, тогава вътрешният цвят на тази клетка ще бъде Жълт. И за жълто имаме цветен код, присвоен му като 4.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове ("Sheet1"). Диапазон ("A1: B8") за всяка клетка в MyRange Ако Cell.Value като "1", тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Подобно на "2", тогава Cell.Interior.ColorIndex = 4 Край, ако Next End Sub 

За всеки цвят имаме различни цветови кодове, присвоени им, което започва от 1 до 56. Докато номер код 1 е присвоен на Черен цвят, а номер 56 е присвоен на Тъмно сив цвят. Между тях имаме различни други цветови нюанси, които можем да намерим от Microsoft Documents.

Стъпка 10: Ако има нещо от горното

условието е FALSE, тогава ще имаме друго Else, ако условие, ако ако стойността на клетката е, тогава вътрешният цвят на клетката ще бъде Жълт. И за жълто отново ще присвоим код като 6.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове ("Sheet1"). Диапазон ("A1: B8") за всяка клетка в MyRange Ако Cell.Value като "1", тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Като „2“, тогава Cell.Interior.ColorIndex = 4 ElseIf Cell.Value като „A“, тогава Cell.Interior.ColorIndex = 6 Край, ако Next End Sub 

Стъпка 11: Направете същото и за стойността на клетката B, с цветен код 4 като Зелен.

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове ("Sheet1"). Диапазон ("A1: B8") за всяка клетка в MyRange Ако Cell.Value като "1", тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value харесва „2“, след това Cell.Interior.ColorIndex = 4 ElseIf Cell.Value като „A“, тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value като „B“, тогава Cell.Interior.ColorIndex = 4 End Ако Next End Sub 

Стъпка 12: Ако някое от условията не е ИСТИНСКО, тогава за Else ще предпочетем да изберете цветовия код като None .

Код:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Работни листове ("Sheet1"). Диапазон ("A1: B8") за всяка клетка в MyRange Ако Cell.Value като "1", тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value харесва „2“, след това Cell.Interior.ColorIndex = 4 ElseIf Cell.Value като „A“, тогава Cell.Interior.ColorIndex = 6 ElseIf Cell.Value като „B“, тогава Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNone End Ако Next Sub Sub 

Стъпка 13: Тъй като кодът е голям, за да компилирате всяка стъпка от кода, натиснете функционалния клавиш F8. Ако не е намерена грешка, кликнете върху бутона за възпроизвеждане, за да стартирате целия код в един замах. Ще видим, според правилото за условно форматиране, дефинирано в VBA код, цветът на клетките е променен в избрани цветови кодове, както е показано по-долу.

Стъпка 14: Това форматиране вече е фиксирано. Ако искаме да видим промените в цвета, за тест нека променим стойността на всяка клетка, считаме А1 от 1 на 2. Ще видим, цветът на клетка А1 се променя на Зелен.

Това е така, защото декларирахме, че в диапазона от А1 до В8 всяка клетка, съдържаща числа 1 и 2 и азбуки А и В, ще бъде форматирана като Жълт и Зелен цвят, както е показано в клетка D2 до E3.

Предимства и недостатъци

  • Той дава моментален изход, ако имаме огромни данни. Докато ако приложим същото от опцията в менюто на Excel, ще отнеме време да изчистим форматирането за набора от големи данни.
  • Ние можем да изпълняваме всички видове функции, които са налични в Excel за условно форматиране и във VBA.
  • Не се препоръчва да се прилага VBA Условно форматиране за малък набор от данни.

Неща, които трябва да запомните

  • Има много други функции освен подчертаване на дубликати и клетки със същата стойност. Можем да променим формата на клетката по какъвто и да е начин като Bold, Italic текст, променяйки цвета на шрифта, променяйки цвета на фона, подчертавайки стойностите между някакъв определен диапазон.
  • След като се приложи условното форматиране, можем да променим правилото, всъщност можем да изтрием и условията за форматиране. Така че нашите данни ще се върнат към нормалното.
  • Можем да приложим повече от едно условие в един макрос.

Препоръчителни статии

Това е ръководство за условното форматиране на VBA. Тук обсъждаме как да използвате функцията за условно форматиране на Excel VBA заедно с практически примери и шаблон за Excel, който можете да изтеглите. Можете да разгледате и другите ни предложени статии -

  1. Функция за копиране на поставяне в VBA
  2. Функция Substring Excel
  3. VBA абонамент извън обхвата
  4. Excel ISNUMBER Formula
  5. Условно форматиране за дати в Excel

Категория: