Cum se face formatarea condiționată folosind VBA în Microsoft Excel

Anonim

Să pictăm un tablou Monalisa și să-l lăsăm pe Picasso în urmă folosind VBA. Gata, pregătește-te …

Aștepta! Aștepta! Ai răbdare. Vom folosi doar VBA pentru a face formatare condiționată și este mai ușor decât o pictură? pasăre în formă.

Sintaxa generică a formatării condiționate VBA

Dacă condiție decât Range (range) .Interior.ColorIndex = 1-56

Verificați starea dvs. la condiție și apoi formatați gama utilizând proprietatea .iteriour.colorindex a obiectului Range. Indicele de culoare are 56 de culori. Du-te la jocul Holi cu ei și explorează ce număr deține culoarea.
Acum să o înțelegem cu un exemplu

Exemplu: Cod VBA pentru formatarea condiționată a celulelor

Deci, acesta este scenariul, avem o listă de persoane aleatorii cu vârsta și grupa lor de vârstă.
Cât de ușor ar fi dacă i-ai putea spune grupului de vârstă o persoană doar privindu-i numele.
Acum, pentru a face acest lucru, vreau formatul VBA Nume RED dacă este adult, GALBEN dacă este adolescent și VERDE dacă este un copil și nimic dacă celula este goală.

Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Pentru fiecare celulă din rng Dacă celulă. Value2 = "Adult" Then Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Adolescent" Apoi Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 0 End Dacă celula următoare End Sub

Pentru a rula acest cod chiar din foaie, am desenat un buton pe aceeași foaie și i-am atribuit această macro. Acum, ori de câte ori veți face clic pe butonul „Format”, codul dvs. va rula și va actualiza celulele de nume cu culoare, în funcție de grupa de vârstă a acestora. Cum? Să aflăm.

Explicatie cod:

Dim rng As RangeDim lastRow As Long Aceste două linii sunt declarații variabile. rng pentru Range care deține grupa de vârstă și lastRow pentru a obține ultimul număr de rând nonblank. 
lastRow = Celule (Rows.Count, 3) .End (xlUp) .Row Această linie returnează ultimul număr de rând din ultima variabilă Row.
Set rng = Range ("C2: C" & lastRow) Această linie stabilește intervalul începând de la C2 și până la ultimul rând. Îți face codul dinamic. Adăugați rânduri noi la datele dvs. și acesta va detecta și va stoca într-o gamă nouă în variabila rng.
Pentru fiecare celulă din rng Dacă celula.Value2 = "Adult" Apoi Interval (celula.Adresă) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf celulă.Value2 = "KID" Apoi Intervalul (celula.Adresă). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Adolescent" Apoi Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 End If Next cell 

Acesta este principalul segment.

Pentru fiecare celulă din rng 

Prima linie rulează bucla către toate celulele din zona dvs. Dacă cell.Value2 = "Adult" Atunci
Următoarea linie este o verificare a stării. Se verifică dacă valoarea actuală a celulei este sau nu adultă.
Dacă da, următoarea linie rulează, altfel trece la următoarea instrucțiune if.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Acum, dacă condiția IF returnează TRUE, atunci această linie stabilește culoarea celulei la ColorIndex 3, care este pentru RED.

În mod similar, instrucțiunile IF următoare rulează și acționează conform specificațiilor.

Deci, da, puteți forma condiționat intervale folosind VBA. Metoda interioară a obiectului Range controlează multe alte proprietăți pentru formatare. Ar trebui să te joci cu ei, nu va face rău, dar vei învăța cu siguranță. Și dacă vă confruntați cu o dificultate decât cea pentru care sunt aici. Puneți întrebările dvs. în secțiunea de comentarii.

Descărcare fișier

Formatare condiționată folosind VBA în Microsoft Excel

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea

Cum se utilizează funcția VLOOKUP în Excel

Cum se utilizează funcția COUNTIF în Excel

Cum se utilizează funcția SUMIF în Excel