Formatare condiționată în Excel VBA

În excel, toți am folosit formatarea condiționată pentru evidențierea valorilor duplicate. Formatarea majoritară condiționată este utilizată pentru a obține valori duplicate. Putem evidenția valorile duplicate în multe feluri. Putem evidenția valorile duplicate, valorile specifice intervalului și, de asemenea, putem defini regula pentru a completa criteriile de formatare. Mai jos sunt funcțiile variabile disponibile în formatarea condiționată.

Dar dacă putem automatiza acest proces de evidențiere a valorilor duplicate sau de orice fel, conform cerințelor noastre. Criteriile pe care le putem defini folosind formatarea condiționată în Excel se pot face și în VBA. Pentru aplicarea formatării condiționate putem alege orice celulă, interval disponibil în foaia de lucru Excel. Formatarea condiționată funcționează numai atunci când criteriile definite îndeplinesc cerința. Altfel, nu va apărea nicio schimbare de culoare. Cu ajutorul formatării condiționate în VBA, putem schimba culoarea oricărui conținut de celulă sau celulă, ștergem culoarea celulei sau eliminăm culoarea. În afară de schimbarea culorii celulei, putem schimba conținutul celulelor în text îndrăzneț sau text italic . Odată terminat, putem anula toate modificările.

Cum se utilizează formatarea condiționată în Excel VBA?

Mai jos sunt diferite exemple pentru a utiliza funcția de formatare condiționată în Excel, folosind codul VBA.

Puteți descărca acest șablon Excel de formatare condițională VBA aici - șablonul Excel de formatare condițională VBA

Formatare condițională VBA - Exemplul # 1

Avem date cu unele numere și text, așa cum se arată mai jos în coloanele A și B. Acum am clasificat deja culoarea pe care trebuie să o dăm numărului și textului care este în celula D2. Am identificat culoarea galbenă pentru numărul 1 și alfabetul A și culoarea verde pentru numărul 2 și alfabetul B.

Deși formatarea condiționată VBA poate fi implementată în modul, dar scrierea codului pentru formatarea condiționată în foaie va face ca codul să funcționeze doar în acea foaie. Pentru aceasta, în loc să mergeți la opțiunea Module, faceți clic pe fila Insert pentru a introduce un modul.

Pasul 1: Acum, din prima listă derulantă, selectați Foaie de lucru care va fi General implicit și din meniul drop-down selectează automat opțiunea SelectionChange, așa cum se arată mai jos.

Pasul 2: Odată ce facem asta, va activa automat subcategoria privată, iar celula țintă va fi ca Range.

Cod:

 Subunitate privată Foaie de lucru_SelecțieCambiere (țintă ByVal ca rază) 

Pasul 3: Acum scrieți codul în primul rând definiți o variabilă MyRange ca Range . Sau puteți alege orice alt nume în loc de MyRange, în funcție de alegerea dvs.

Cod:

 Sub Privare Fișă de lucru_SelecțieCambiere (țintă ByVal ca rază) Dim MyRange ca subfață de gamă 

Pasul 4: Folosiți Setare și alegeți intervalul definit așa cum se arată mai jos.

Cod:

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

Pasul 5: După aceasta, selectăm Foaia de lucru unde dorim să aplicăm formatarea condiționată. Aici fișa noastră este Foaia1. Putem pune secvența ca și 1 în loc să scriem Sheet1. Și apoi selectați gama acelor celule pe care trebuie să le formatăm. Aici gama noastră este de la celula A1 la B8.

Cod:

 Sub Privat Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") End Sub 

Pasul 6: Acum deschideți o buclă For Each-Next, așa cum se arată mai jos. Și începeți cu selectarea variabilei MyRange definite de celule .

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target as Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For each Cell in MyRange Next End Sub 

Pasul 7: Acum, deschideți din nou o buclă If-Else.

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For each Cell in MyRange If End If Next End Sub 

Aceasta este regiunea în care am atribui culorile tuturor numerelor și alfabetelor disponibile din gama noastră.

Pasul 8: Scrieți codul, dacă valoarea celulei este 1, atunci culoarea interioară, celula interval selectată care este de la A1 la B8 va fi verde. Iar pentru verde, avem codul de culoare atribuit lui 6.

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") pentru fiecare celulă din MyRange Dacă Cell.Value Like "1" Atunci Cell.Interior.ColorIndex = 6 End If Next End Sub 

Pasul 9: Acum pentru numărul celulei 2. Altfel dacă valoarea celulelor oricărei celule din intervalul selectat este 2, atunci culoarea interioară a acelei celule va fi Galben. Iar pentru galben avem codul de culoare atribuit lui 4.

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") pentru fiecare celulă din MyRange Dacă Cell.Value Like "1" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Atunci Cell.Interior.ColorIndex = 4 End If Next End Sub 

Pentru fiecare culoare, le sunt atribuite coduri de culori diferite, care încep de la 1 la 56. În timp ce codul numărul 1 este atribuit culorii negre, iar numărul 56 este atribuit culorii gri închis. Între noi, avem diferite alte nuanțe de culoare pe care le putem găsi din documentele Microsoft.

Pasul 10: Dacă vreuna dintre cele de mai sus

starea este FALS, atunci am avea altă condiție dacă condiția în care dacă valoarea celulei este A, atunci culoarea interioară a celulei va fi Galben. Și pentru galben din nou vom atribui cod ca 6.

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") pentru fiecare celulă din MyRange Dacă Cell.Value Like "1" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Atunci Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Atunci Cell.Interior.ColorIndex = 6 End If Next End Sub 

Pasul 11: Faceți același lucru și pentru valoarea celulei B, cu codul de culoare 4 ca Verde.

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") pentru fiecare celulă din MyRange Dacă Cell.Value Like "1" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Apoi Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Apoi Cell.Interior.ColorIndex = 4 End If Next End Sub 

Pasul 12: Dacă oricare dintre condiții nu este ADEVĂRAT, atunci pentru Altele, vom prefera să selectăm codul de culoare ca Niciuna .

Cod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") pentru fiecare celulă din MyRange Dacă Cell.Value Like "1" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Apoi Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Atunci Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Apoi Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNone End If Next End Sub 

Pasul 13: Deoarece codul este mare, pentru a compila fiecare pas de cod, apăsați tasta funcțională F8. Dacă nu a fost găsită nicio eroare, faceți clic pe butonul de redare pentru a rula întregul cod dintr-o dată. Vom vedea, conform regulii de formatare condiționată definite în codul VBA, culoarea celulelor a fost schimbată în coduri de culori selectate, așa cum se arată mai jos.

Pasul 14: Această formatare este acum rezolvată. Dacă dorim să vedem schimbările de culoare, pentru test să schimbăm valoarea oricărei celule ia în considerare A1 de la 1 la 2. Vom vedea, culoarea celulei A1 este schimbată în Verde.

Acest lucru se datorează faptului că am declarat că, în intervalul A1 până la B8, orice celulă care conține numerele 1 și 2 și alfabetele A și B, va fi formatată ca culoare galbenă și verde, așa cum se arată în celula D2 până la E3.

Argumente pro şi contra

  • Dă o ieșire instantanee dacă avem date uriașe. Întrucât dacă aplicăm același lucru din opțiunea meniu Excel, va fi nevoie de timp pentru a șterge formatarea pentru setul de date mari.
  • Putem efectua toate tipurile de funcții care sunt disponibile în Excel pentru formatare condiționată și în VBA.
  • Nu se recomandă aplicarea formatării condiționate VBA pentru un set mic de date.

Lucruri de amintit

  • Există multe alte funcții, în afară de evidențierea duplicatelor și a celulelor cu aceeași valoare. Putem schimba formatul celulei în orice fel, cum ar fi textul gras, italic, schimbând culoarea fontului, schimbând culoarea de fundal, evidențiind valorile dintre un anumit interval.
  • Odată aplicată formatarea condiționată, putem modifica regula, de fapt, putem șterge și condițiile de formatare. Astfel, datele noastre vor reveni la normal.
  • Putem aplica mai multe condiții într-o singură macro.

Articole recomandate

Acesta este un ghid pentru formatarea condiționată a VBA. Aici vom discuta despre cum să utilizăm funcția de formatare condiționată Excel VBA, împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Copiați funcția Paste în VBA
  2. Substring Funcție Excel
  3. Abonament VBA în afara intervalului
  4. Excel Formula ISNUMBER
  5. Formatare condiționată pentru date în Excel

Categorie: