Villkorlig formatering i Excel VBA

I Excel har vi alla använt Villkorlig formatering för att markera duplikatvärden. Huvudsakligen villkorlig formatering används för att få duplicerade värden. Vi kan lyfta fram duplicerade värden på många sätt. Vi kan markera duplikatvärdena, intervallspecifika värden och kan också definiera regeln för att slutföra formateringskriterierna. Nedan är de variabla funktionerna tillgängliga under Villkorlig formatering.

Men vad händer om vi kan automatisera denna process med att markera duplikat eller någon form av värden enligt vårt krav. De kriterier som vi kan definiera med Villkorlig formatering i Excel kan också göras i VBA. För tillämpning av villkorlig formatering kan vi välja vilken cell som helst som finns tillgängliga i Excel-kalkylbladet. Villkorlig formatering fungerar endast när de definierade kriterierna uppfyller kravet. Annars kommer det inte att visa någon färgförändring. Med hjälp av villkorlig formatering i VBA kan vi ändra färgen på valfri cell eller cellinnehåll, ta bort cellfärgen eller ta bort färgen också. Förutom att vi ändrar cellens färg kan vi ändra cellinnehållet i fet text eller kursiv text. När det är gjort kan vi ångra alla ändringar också.

Hur använder jag villkorlig formatering i Excel VBA?

Nedan följer de olika exemplen för att använda villkorlig formateringsfunktion i Excel med VBA-kod.

Du kan ladda ner denna VBA Villkorlig formatering Excel-mall här - VBA Villkorlig formatering Excel-mall

VBA Villkorlig formatering - Exempel 1

Vi har data om vissa siffror och text som visas nedan i kolumn A och B. Nu har vi redan kategoriserat färgen vi behöver ge till nummer och text som finns i cell D2. Vi har identifierat gul färg för nummer 1 och alfabetet A och grön färg för nummer 2 och alfabet B.

Även om VBA villkorlig formatering kan implementeras i modul men att skriva koden för villkorlig formatering i ark kommer att göra att koden bara fungerar i det arket. För detta, istället för att gå till alternativet Modul, klicka på fliken Infoga för att infoga en modul.

Steg 1: Nu från det första rullgardinsmenyn väljer du Arbetsblad som kommer att vara Allmänt som standard och från välj rullgardinsmenyn kommer det automatiskt att välja alternativet SelectionChange som visas nedan.

Steg 2: När vi gör det kommer den automatiskt att aktivera den privata underkategorin och Målcellen skulle vara som Range.

Koda:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Slut Sub 

Steg 3: Skriv nu koden först definiera en variabel MyRange som Range . Eller så kan du välja något annat namn istället för MyRange enligt ditt val.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range End Sub 

Steg 4: Använd Set och välj det definierade intervallet som visas nedan.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = End Sub 

Steg 5: Välj sedan det kalkylblad där vi vill använda den villkorliga formateringen. Här är vårt blad Sheet1. Vi kan sätta sekvensen också som 1 istället för att skriva Sheet1. Och välj sedan området för de celler som vi behöver formatera. Här är vårt sortiment från cell A1 till B8.

Koda:

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

Steg 6: Öppna nu en för varje nästa slinga som visas nedan. Och börja det med att välja den celldefinierade variabeln MyRange .

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") för varje cell i MyRange Next End Sub 

Steg 7: Nu i det, öppna igen en If-Else-slinga.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") för varje cell i MyRange If End Om Next End Sub 

Det här är regionen där vi skulle tilldela färgerna till alla siffror och alfabet som finns tillgängliga i vårt sortiment.

Steg 8: Skriv koden, om cellvärdet är 1 då-Interiörfärg är den valda intervallcellen som är från A1 till B8 grön. Och för grönt har vi färgkoden tilldelad den som 6.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") För varje cell i MyRange If Cell.Value Like "1" Sedan Cell.Interior.ColorIndex = 6 slut om nästa slut sub 

Steg 9: Nu för cellvärde nummer 2. Annars om cellvärdet för någon cell från det valda intervallet är 2 så kommer den inre färgen på den cellen att vara gul. Och för gul har vi färgkoden tilldelad den som 4.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") För varje cell i MyRange If Cell.Value Like "1" Sedan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Sedan Cell.Interior.ColorIndex = 4 End If Next End Sub 

För varje färg har vi olika färgkoder tilldelade dem som börjar från 1 till 56. Medan sifferkod 1 tilldelas Svart färg och nummer 56 tilldelas Mörkgrå färg. Däremellan har vi olika andra färgnyanser som vi kan hitta från Microsoft Documents.

Steg 10: Om något av ovanstående

villkoret är FALSE, då skulle vi ha en annan annan om villkoret där om cellvärdet är A så är cellens inre färg gul. Och för gul igen kommer vi att tilldela kod som 6.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") För varje cell i MyRange If Cell.Value Like "1" Sedan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Sedan Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 End If Next End Sub 

Steg 11: Gör samma sak för cellvärde B också, med färgkod 4 som grön.

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") För varje cell i MyRange If Cell.Value Like "1" Sedan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Sedan Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Then Cell.Interior.ColorIndex = 4 Avsluta om nästa slut Sub 

Steg 12: Om något av villkoren inte är SANT, för andra kommer vi att föredra att välja färgkod som Ingen .

Koda:

 Privat underarkiv_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") För varje cell i MyRange If Cell.Value Like "1" Sedan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Sedan Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Then Cell.Interior.ColorIndex = 4 Annars Cell.Ineterios.ColorIndex = xlNone End If Next End Sub 

Steg 13: Eftersom koden är stor, tryck på F8-funktionsknappen för att sammanställa varje kodsteg. Om inget fel hittades klickar du på play-knappen för att köra hela koden på en gång. Vi kommer att se, enligt per villkorlig formateringsregel definierad i VBA-kod, cellernas färg har ändrats till valda färgkoder som visas nedan.

Steg 14: Den här formateringen är nu fixad. Om vi ​​vill se förändringarna i färg, för test, låt oss ändra värdet på en cell överväga A1 från 1 till 2. Vi kommer att se, färgen på cell A1 ändras till Grön.

Detta beror på att vi har förklarat att inom intervallet A1 till B8, alla celler som innehåller siffrorna 1 och 2 och alfabet A och B, kommer att formateras som gul och grön färg, som visas i cell D2 till E3.

Fördelar och nackdelar

  • Det ger omedelbar produktion om vi har enorma data. Medan vi använder samma från Excel-menyalternativet kommer det att ta tid att rensa formateringen för stordataset.
  • Vi kan också utföra alla typer av funktioner som finns tillgängliga i Excel för villkorlig formatering i VBA.
  • Det rekommenderas inte att tillämpa VBA Villkorlig formatering för en liten uppsättning data.

Saker att komma ihåg

  • Det finns många andra funktioner förutom att markera duplikat och samma värdesceller. Vi kan ändra formatet på cellen på något sätt som fetstil, kursiv text, ändring av teckensnittsfärg, ändring av bakgrundsfärgen, markering av värdena mellan något specifikt intervall.
  • När villkorlig formatering har applicerats kan vi ändra regeln, och vi kan faktiskt ta bort formateringsvillkoren också. Så att våra data kommer att återgå till det normala.
  • Vi kan tillämpa mer än ett villkor i ett makro.

Rekommenderade artiklar

Detta är en guide till VBA villkorlig formatering. Här diskuterar vi hur du använder Excel VBA Villkorlig formateringsfunktion tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Kopiera klistra in funktion i VBA
  2. Substring Excel-funktion
  3. VBA-prenumeration utanför räckvidden
  4. Excel ISNUMBER-formel
  5. Villkorlig formatering för datum i Excel

Kategori: