Så här gör du villkorlig formatering med VBA i Microsoft Excel

Anonim

Låt oss måla en Monalisa -målning och lämna Picasso bakom oss med VBA. Klar, gör dig redo …

Vänta! Vänta! Vänta lite nu. Vi ska bara använda VBA för att göra villkorlig formatering och det är lättare än en målning som? formad fågel.

Den generiska syntaxen för VBA villkorlig formatering

Om tillstånd än Intervall (intervall) .Interior.ColorIndex = 1-56

Ge din tillståndskontroll på villkoret och formatera sedan ditt intervall med egenskapen .iteriour.colorindex för Range -objekt. Färgindexet har 56 färger. Gå och spela Holi med dem och utforska vilket nummer som har vilken färg.
Låt oss nu förstå det med ett exempel

Exempel: VBA -kod för att villkorligt formatera celler

Så, detta är scenariot, vi har en lista över slumpmässiga personer med deras ålder och åldersgrupp.
Hur lätt det vore om man kunde berätta för en åldersgrupp en person genom att bara titta på deras namn.
Nu för att göra detta vill jag ha VBA -format Namn RÖTT om han är vuxen, GUL om han är tonåring och GRÖN om han är en BARN och ingenting om cellen är tom.

Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) För varje cell I rng If cell. Value2 = "Adult" Sedan Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Sedan Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Sedan Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Slut Om Nästa cell Avslut Sub

För att köra den här koden direkt från arket har jag ritat en knapp på samma blad och tilldelat det här makrot. Nu, när du klickar på knappen "Format" kommer din kod att köra och uppdatera namnceller med färg beroende på deras åldersgrupp. Hur? Låt oss ta reda på.

Kodförklaring:

Dim rng As Range Dim dimRow As Long Dessa två rader är variabla deklarationer. rng för Range som innehåller åldersgruppen och lastRow för att få det sista icke -tomma radnumret. 
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowThis line returns last row number in lastRow Variable.
Set rng = Range ("C2: C" & lastRow) Denna rad anger intervallet från C2 och till den sista raden. Det gör din kod dynamisk. Du lägger till nya rader till dina data och det kommer att upptäcka och lagras i nytt intervall i rng -variabel.
För varje cell I rng If cell.Value2 = "Adult" Sedan Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Sedan Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Sedan Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Adress). Offset (0, -2) .Interior.ColorIndex = 0 Avsluta om nästa cell 

Detta är huvudsegmentet.

För varje cell I rng 

Den första raden kör slingan till alla celler i ditt intervall. If cell.Value2 = "Adult" Då
Nästa rad är en tillståndskontroll. Den kontrollerar om det aktuella cellvärdet är vuxen eller inte.
Om ja, nästa rad körs, annars hoppar den till nästa if -sats.Range (cell.adress) .Offset (0, -2) .Interior.ColorIndex = 3
Om IF -villkoret returnerar SANT, sätter den här raden cellfärgen till ColorIndex 3 som är för RÖD.

På liknande sätt körs IF -uttalanden och vidtar åtgärder enligt specifikationen.

Så ja, du kan villkorligt formatera intervall med VBA. Interiörmetod för Range -objekt styr många andra egenskaper för formatering. Du borde leka med dem, det kommer inte att göra någon skada men du lär dig definitivt. Och om du möter några svårigheter än vad jag är här för. Ställ dina frågor i kommentarsfältet.

Nedladdning fil

Villkorlig formatering med VBA i Microsoft Excel

Populära artiklar:

50 Excel -genvägar för att öka din produktivitet

Så här använder du VLOOKUP -funktionen i Excel

Så här använder du funktionen COUNTIF i Excel

Hur man använder SUMIF -funktionen i Excel