Kā veikt nosacītu formatēšanu, izmantojot VBA programmā Microsoft Excel

Anonim

Uzgleznosim Monalisa gleznu un atstāsim Pikaso, izmantojot VBA. Gatavs, sagatavojies…

Pagaidiet! Pagaidiet! Pieturi zirgus. Mēs tikai izmantosim VBA nosacījumu formatēšanai, un tas ir vieglāk nekā glezna? formas putns.

VBA Nosacījuma formatēšanas vispārējā sintakse

Ja nosacījums nekā diapazons (diapazons) .Interior.ColorIndex = 1-56

Pārbaudiet savu stāvokli un pēc tam formatējiet diapazonu, izmantojot diapazona objekta rekvizītu .iteriour.colorindex. Krāsu indeksā ir 56 krāsas. Ejiet ar viņiem spēlēt Holi un izpētiet, kurš numurs satur kādu krāsu.
Tagad sapratīsim to ar piemēru

Piemērs: VBA kods, lai nosacīti formatētu šūnas

Tātad, tas ir scenārijs, mums ir nejaušu cilvēku saraksts ar viņu vecumu un vecuma grupu.
Cik viegli tas būtu, ja jūs varētu pateikt vecuma grupai cilvēku, tikai apskatot viņu vārdus.
Lai to izdarītu, es vēlos VBA formātu NOSAUKUMS SARKANS, ja viņš ir pieaugušais, dzeltens, ja viņš ir pusaudzis, un ZAĻS, ja viņš ir KID, un nekas, ja šūna ir tukša.

Sub FormatUsingVBA () Dim rng kā diapazons Dim lastRow As Long lastRow = Šūnas (Rows.Count, 3). End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Katrai šūnai In rng If šūna. Vērtība2 = "Pieaugušais" Tad diapazons (šūna.Addrese) .Pārvietojums (0, -2) .Interior.ColorIndex = 3 ElseIf šūna.Vērtība2 = "KID" Tad diapazons (šūna.Adrese) .Pārvietojums (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 0 Beigt, ja nākamā šūna Beidz apakš

Lai palaistu šo kodu tieši no lapas, es uz tās pašas lapas esmu uzzīmējis pogu un piešķīris tai šo makro. Tagad, kad noklikšķināsit uz pogas “Formatēt”, jūsu kods darbosies un atjauninās nosaukuma šūnas ar krāsu atkarībā no to vecuma grupas. Kā? Noskaidrosim.

Koda skaidrojums:

Dim rng As RangeDim lastRow As Long Šīs divas rindas ir mainīgas deklarācijas. rng diapazonam, kurā ir vecuma grupa, un lastRow, lai iegūtu pēdējo tukšo rindas numuru. 
lastRow = šūnas (Rows.Count, 3). End (xlUp). RowThis rinda atgriež pēdējās rindas numuru lastRow Variable.
Set rng = Range ("C2: C" & lastRow) Šī līnija nosaka diapazonu, sākot no C2 un beidzot ar pēdējo rindu. Tas padara jūsu kodu dinamisku. Jūs pievienojat saviem datiem jaunas rindas, un tas atklās un saglabās jaunā diapazonā mainīgā rng.
Katrai šūnai In rng Ja šūna.Vērtība2 = "Pieaugušais" Tad diapazons (šūna.Addrese) .Pārvietojums (0, -2) .Interior.ColorIndex = 3 ElseIf šūna.Vērtība2 = "KID" Tad diapazons (šūna.Adrese). Nobīde (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Pusaudzis" Tad diapazons (šūna.Adrese) .Pārvietojums (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Nobīde (0, -2). Interjers.ColorIndex = 0 Beigt, ja nākamā šūna 

Šis ir galvenais segments.

Par katru šūnu In rng 

Pirmā rinda vada cilpu uz visām jūsu diapazona šūnām. Ja šūna.Vērtība2 = "Pieaugušais" Tad
Nākamā rinda ir stāvokļa pārbaude. Tas pārbauda, ​​vai pašreizējā šūnas vērtība ir pieauguša vai nē.
Ja jā, tad nākamā rinda darbojas, pretējā gadījumā tā pāriet uz nākamo if. Range (šūna. Adrese). Nobīde (0, -2). Interior.ColorIndex = 3
Tagad, ja IF nosacījums atgriež TRUE, tad šī līnija nosaka šūnu krāsu uz ColorIndex 3, kas ir SARKANA.

Līdzīgi darbojas šādi IF paziņojumi un rīkojas, kā norādīts.

Jā, jūs varat nosacīti formatēt diapazonus, izmantojot VBA. Range objekta interjera metode kontrolē daudzas citas formatēšanas īpašības. Jums vajadzētu rotaļāties ar viņiem, tas nekaitēs, bet jūs noteikti iemācīsities. Un, ja jūs saskaraties ar grūtībām nekā tas, par ko es esmu šeit. Uzdodiet savus jautājumus komentāru sadaļā.

Lejupielādēt failu

Nosacījuma formatēšana, izmantojot VBA programmā Microsoft Excel

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti

Kā lietot funkciju VLOOKUP programmā Excel

Kā programmā Excel izmantot funkciju COUNTIF

Kā lietot funkciju SUMIF programmā Excel