Lad os male et Monalisa -maleri og efterlade Picasso bagved ved hjælp af VBA. Klar, gør dig klar …
Vente! Vente! Vent lidt. Vi vil bare bruge VBA til at lave betinget formatering, og det er lettere end et maleri, der? formet fugl.
Den generiske syntaks for VBA betinget formatering
Hvis tilstand end Range (område) .Interior.ColorIndex = 1-56
Kontroller din tilstand ved tilstanden, og formater derefter dit område ved hjælp af egenskaben .iteriour.colorindex for Range -objekt. Farveindekset har 56 farver. Gå og spil Holi med dem, og udforsk hvilket nummer der har hvilken farve.
Lad os nu forstå det med et eksempel
Eksempel: VBA -kode til betinget formatering af celler
Så dette er scenariet, vi har en liste over tilfældige mennesker med deres alder og aldersgruppe.
Hvor let var det, hvis man kunne fortælle aldersgruppen en person ved bare at kigge på deres navne.
Nu for at gøre dette, vil jeg have VBA -format Navn RØD, hvis han er voksen, GUL hvis han er teenager og GRØN, hvis han er et BØRN og intet, 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" Herefter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Herefter Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Herefter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Slut Hvis Næste celle Afslut Sub
For at køre denne kode lige fra arket har jeg tegnet en knap på det samme ark og tildelt denne makro til den. Når du nu klikker på knappen "Format", kører din kode og opdaterer navneceller med farve afhængigt af deres aldersgruppe. Hvordan? Lad os finde ud af det.
Kode Forklaring:
Dim rng As Range Dim lastRow As Long Disse to linjer er variable deklarationer. rng for Range, der indeholder aldersgruppen og lastRow for at få sidste ikke -tomme rækkenummer.
lastRow = Celler (Rows.Count, 3). End (xlUp) .RowThis line returns last row number in lastRow Variable.
Set rng = Range ("C2: C" & lastRow) Denne linje indstiller intervallet, der starter fra C2 og til den sidste række. Det gør din kode dynamisk. Du tilføjer nye rækker til dine data, og det vil registrere og gemme i nyt område i rng -variabel.
For hver celle I rng If cell.Value2 = "Adult" Herefter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Herefter Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Herefter Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 Afslut hvis næste celle
Dette er hovedsegmentet.
For hver celle I rng
Den første linje kører sløjfen til alle celler i dit område. Hvis cell.Value2 = "Voksen" Så
Den næste linje er en tilstandskontrol. Den kontrollerer, om den aktuelle celleværdi er voksen eller ej.
Hvis ja, kører næste linje, ellers springer den til næste if -sætning.Range (cell.adresse) .Offset (0, -2) .Interior.ColorIndex = 3
Hvis IF -betingelsen nu returnerer TRUE, sætter denne linje cellens farve til ColorIndex 3, der er for RØD.
På samme måde følger IF -erklæringer, og foretager handling som specificeret.
Så ja, du kan betinget formatere intervaller ved hjælp af VBA. Indvendig metode til Range -objekt styrer mange andre egenskaber til formatering. Du bør lege med dem, det vil ikke gøre nogen skade, men du vil helt sikkert lære. Og hvis du står over for problemer, end hvad jeg er her for. Stil dine spørgsmål i kommentarfeltet.
Download fil
Betinget formatering ved hjælp af VBA i Microsoft ExcelPopulære artikler:
50 Excel -genveje til at øge din produktivitet
Sådan bruges VLOOKUP -funktionen i Excel
Sådan bruges funktionen COUNTIF i Excel
Sådan bruges SUMIF -funktionen i Excel