Hvordan gjøre betinget formatering ved hjelp av VBA i Microsoft Excel

Anonim

La oss male et Monalisa -maleri og la Picasso stå bak ved hjelp av VBA. Klar, gjør deg klar …

Vente! Vente! Hold hestene dine. Vi skal bare bruke VBA til å gjøre betinget formatering, og det er lettere enn et maleri som? formet fugl.

Den generiske syntaksen for VBA betinget formatering

Hvis tilstand enn område (område) .Interior.ColorIndex = 1-56

Gi tilstandskontrollen din til tilstanden, og formater deretter området ditt med egenskapen .iteriour.colorindex for Range -objektet. Fargeindeksen har 56 farger. Gå og spill Holi med dem, og utforsk hvilket nummer som har hvilken farge.
La oss nå forstå det med et eksempel

Eksempel: VBA -kode til betinget format av celler

Så, dette er scenariet, vi har en liste over tilfeldige personer med deres alder og aldersgruppe.
Hvor lett det var hvis det kunne fortelle en aldersgruppe en person ved å bare se på navnene deres.
Nå for å gjøre dette, vil jeg ha VBA -format Navn RØDT hvis han er voksen, GUL hvis han er tenåring og GRØNN hvis han er et BARN og ingenting hvis cellen er 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) For hver celle I rng If celle. 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 = "Teenager" Deretter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 End If Next cell End Sub

For å kjøre denne koden rett fra arket, har jeg tegnet en knapp på det samme arket og tilordnet denne makroen til den. Når du klikker på "Format" -knappen, vil koden din kjøre og oppdatere navneceller med farge avhengig av aldersgruppe. Hvordan? La oss finne det ut.

Kode Forklaring:

Dim rng As Range Dim lastRow As Long Disse to linjene er variable deklarasjoner. rng for Range som inneholder aldersgruppen og lastRow for å få siste ikke -tomme radnummer. 
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowThis line returns last row number in lastRow Variable.
Sett rng = Range ("C2: C" og lastRow) Denne linjen angir området som starter fra C2 og til den siste raden. Det gjør koden din dynamisk. Du legger til nye rader i dataene dine, og det vil oppdage og lagre i nytt område i rng -variabel.
For hver celle In rng If cell.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 = "Teenager" Deretter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Forskyvning (0, -2) .Interior.ColorIndex = 0 Slutt hvis neste celle 

Dette er hovedsegmentet.

For hver celle I rng 

Den første linjen kjører løkken til alle cellene i området ditt. If cell.Value2 = "Adult" Da
Neste linje er en tilstandskontroll. Den sjekker om den nåværende celleverdien er voksen eller ikke.
Hvis ja, kjører neste linje, ellers hopper den til neste if -setning.Range (cell.adresse) .Offset (0, -2) .Interior.ColorIndex = 3
Hvis IF -betingelsen returnerer TRUE, setter denne linjen cellefargen til ColorIndex 3 som er for RØD.

På samme måte følger IF -uttalelser og iverksetter tiltak som spesifisert.

Så ja, du kan betinget formatere områder ved hjelp av VBA. Innvendig metode for Range -objekt kontrollerer mange andre egenskaper for formatering. Du bør leke med dem, det vil ikke gjøre noen skade, men du vil definitivt lære. Og hvis du møter noen problemer enn det jeg er her for. Still spørsmålene dine i kommentarfeltet.

Last ned fil

Betinget formatering ved hjelp av VBA i Microsoft Excel

Populære artikler:

50 Excel -snarveier for å øke produktiviteten

Slik bruker du VLOOKUP -funksjonen i Excel

Slik bruker du COUNTIF -funksjonen i Excel

Slik bruker du SUMIF -funksjonen i Excel