VBA nosacītā formatēšana Lietojiet nosacīto formātu, izmantojot VBA Excel

Nosacīta formatēšana programmā Excel VBA

Excel šūnā vai šūnu diapazonā mēs varam piemērot nosacītu formatējumu. Nosacītais formāts ir formāts, kas tiek piemērots tikai šūnām, kas atbilst noteiktiem kritērijiem, piemēram, vērtībām virs noteiktas vērtības, pozitīvām vai negatīvām vērtībām vai vērtībām ar noteiktu formulu utt. Šo nosacīto formatēšanu var veikt arī Excel VBA programmēšanā, izmantojot “ Formāta nosacījumu kolekcija ” makro / procedūrā.

Formāta nosacījums tiek izmantots, lai attēlotu nosacītu formātu, kuru var iestatīt, izsaucot metodi, kas atgriež šāda veida mainīgo. Tajā ir visi nosacītie formāti vienam diapazonam, un tajā var būt tikai trīs formāta nosacījumi.

FormatConditions.Add / Modify / Delete tiek izmantots VBA, lai kolekcijai pievienotu / modificētu / dzēstu FormatCondition objektus. Katru formātu attēlo objekts FormatCondition. FormatConditions ir objekta Range īpašums, un funkcijai Add ir šādi parametri ar zemāku sintaksi:

FormatConditions.Add (tips, operators, Formula1, Formula2) 

Formulas pievienošanas sintaksei ir šādi argumenti:

  • Tips: Obligāts, apzīmē, ja nosacītā formāta pamatā ir šūnā esošā vērtība vai izteiksme
  • Operators: pēc izvēles apzīmē operatoru, kas jāizmanto ar vērtību, ja “Type” pamatā ir šūnas vērtība
  • Formula1: neobligāti, apzīmē vērtību vai izteiksmi, kas saistīta ar nosacīto formātu.
  • 2. formula: pēc izvēles norāda vērtību vai izteicienu, kas saistīts ar nosacītā formāta otro daļu, ja parametrs: “Operators” ir vai nu “xlBetween”, vai “xlNotBetween”.

FormatConditions.Modify ir arī tāda pati sintakse kā FormatConditions.Add.

Tālāk ir saraksts ar dažām vērtībām / uzskaitījumu, ko var izmantot daži parametri 'Pievienot' / 'Modificēt':

VBA nosacītā formatējuma piemēri

Tālāk ir sniegti nosacījuma formatēšanas piemēri programmā Excel vba.

Šo VBA nosacītās formatēšanas veidni varat lejupielādēt šeit - VBA nosacītās formatēšanas veidne

1. piemērs

Pieņemsim, ka mums ir Excel fails, kurā ir dažu studentu vārdi un zīmes, un mēs vēlamies noteikt / izcelt atzīmes kā treknrakstā un zilā krāsā, kas ir lielāka par 80, un kā treknrakstā un sarkanā krāsā, kas ir mazāka par 50. Apskatīsim failā esošos datus:

Lai to paveiktu, mēs izmantojam funkciju FormatConditions.Add kā norādīts zemāk:

  • Dodieties uz izstrādātāju -> Visual Basic Editor:

  • Ar peles labo pogu noklikšķiniet uz darbgrāmatas nosaukuma rūtī “Project-VBAProject” -> “Ievietot” -> “Modulis”.

  • Tagad ierakstiet kodu / procedūru šajā modulī:

Kods:

 Apakšformāts () Beigas Apakš 

  • Definējiet mainīgo rng, condition1, condition2:

Kods:

 Apakšformatēšana () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition End Sub 

  • Iestatiet / labojiet diapazonu, kurā jāveido nosacīts formatējums, izmantojot funkciju VBA 'Range':

Kods:

 Apakšformatēšana () Dim rng As Range Dim nosacījums1 Kā FormatCondition, nosacījums2 Kā FormatCondition Iestatiet rng = Diapazons ("B2", "B11") Beigu apakšdaļa 

  • Dzēsiet / notīriet visus esošos nosacītos formatējumus (ja tādi ir) no diapazona, izmantojot 'FormatConditions.Delete':

Kods:

 Apakšformāts () Dim rng As Range Dim nosacījums1 Kā FormatCondition, nosacījums2 Kā FormatCondition Iestatiet rng = Range ("B2", "B11") rng.FormatConditions.Delete End Sub

  • Tagad definējiet un iestatiet kritērijus katram nosacītajam formātam, izmantojot “FormatConditions.Add”:

Kods:

 Apakšformāts () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Iestatiet nosacījumu2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") Beigu apakšdaļa 

  • Definējiet un iestatiet formātu, kas jāpiemēro katram nosacījumam

Nokopējiet un ielīmējiet šo kodu savā VBA klases modulī.

Kods:

Apakšformatēšana () 'Mainīgo definēšana: Dim rng As Range Dim nosacījums1 As FormatCondition, condition2 As FormatCondition' Fiksēšana / iestatīšana diapazonam, kuram nepieciešams nosacīts formatējums Iestatīt rng = Range ("B2", "B11") 'Uz dzēst / notīrīt jebkuru esošo nosacīto formatējumu no diapazona rng.FormatConditions.Delete 'Katra nosacītā formāta kritēriju definēšana un iestatīšana. Pievienot (xlCellValue, xlLess, "= 50") 'Formāta noteikšana un iestatīšana, kas jāpiemēro katram nosacījumam With condition1 .Font.Color = vbBlue .Font.Bold = True End With With condition2 .Font.Color = vbRed .Font. Treknrakstā = True End With End Sub

Tagad, palaižot šo kodu, izmantojot F5 taustiņu vai manuāli, mēs redzam, ka zīmes, kas ir mazākas par 50, tiek izceltas treknrakstā un sarkanā krāsā, bet tās, kas ir lielākas par 80, tiek izceltas treknrakstā un zilā krāsā šādi:

Piezīme. Dažas no formatēto šūnu parādīšanās īpašībām, kuras var izmantot ar FormatCondition, ir šādas:

2. piemērs

Pieņemsim, ka iepriekš minētajā piemērā mums ir vēl viena sleja, kurā teikts, ka students ir "Topper", ja viņš / viņa iegūst vairāk nekā 80 atzīmes, pretējā gadījumā pret viņiem tiek rakstīts Pass / Fail. Tagad mēs vēlamies izcelt vērtības, kas norādītas kā “Topper” kā Bold and Blue. Apskatīsim failā esošos datus:

Šajā gadījumā kods / procedūra darbosies šādi:

Kods:

 Apakšteksta formatēšana () Beigu apakšnodaļa 

Definējiet un iestatiet formātu, kas jāpiemēro katram nosacījumam

Kods:

 Sub TextFormatting () ar diapazonu ("c2: c11"). FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") Ar .Font .Bold = True .Color = vbBlue beidzas ar beigām ar beigu apakšdaļu 

Iepriekš redzamajā kodā mēs varam redzēt, vai mēs vēlamies pārbaudīt, vai diapazonā: 'C2: C11' ir virkne: 'Topper', tāpēc parametra 'Operator' formātā 'Format.Add' ir uzskaitījums: 'xlContains', lai pārbaudītu šo nosacījumu fiksētajā diapazonā (ti, C2: C11), un pēc tam veiciet nepieciešamo nosacīto formatēšanu (fonta izmaiņas) šajā diapazonā.

Tagad, kad mēs palaižam šo kodu manuāli vai nospiežot taustiņu F5, mēs redzam, ka šūnu vērtības ar 'Topper' tiek iezīmētas zilā un treknrakstā:

Piezīme. Tātad iepriekšējos divos piemēros mēs redzējām, kā metode “Pievienot” darbojas jebkura šūnu vērtības kritērija (ciparu vai teksta virknes) gadījumā.

Zemāk ir daži citi gadījumi / kritēriji, kurus var izmantot, lai pārbaudītu un tādējādi piemērotu VBA nosacīto formatējumu:

  • Formatēt pēc laika perioda
  • Vidējais stāvoklis
  • Krāsu skalas stāvoklis
  • IconSet nosacījums
  • Datu bāzes stāvoklis
  • Unikālās vērtības
  • Vērtību dublikāti
  • Top10 vērtības
  • Procentila stāvoklis
  • Neaizpildīts stāvoklis utt.

Ar dažādiem pārbaudāmiem nosacījumiem dažādas vērtības / uzskaitījums tiek ņemts no parametra “Pievienot”.

Lietas, kas jāatceras par VBA nosacīto formatēšanu

  • Metode 'Pievienot' ar 'FormatConditions' tiek izmantota jauna nosacītā formāta izveidošanai, metode 'Dzēst', lai izdzēstu jebkuru nosacīto formātu, un 'Modificēt', lai mainītu jebkuru esošo nosacīto formātu.
  • Metode “Pievienot” ar “FormatConditions Collection” neizdodas, ja vienam diapazonam ir izveidoti vairāk nekā trīs nosacītie formāti.
  • Lai diapazonam lietotu vairāk nekā trīs nosacītos formātus, izmantojot metodi “Pievienot”, mēs varam izmantot “Ja” vai “Atlasīt reģistru”.
  • Ja metodes “Pievienot” parametra “Type” parametrs ir “xlExpression”, parametrs “Operators” tiek ignorēts.
  • Parametri: “Formula1” un “Formula2” metodē “Pievienot” var būt šūnas atsauce, nemainīga vērtība, virknes vērtība vai pat formula.
  • Parametrs: 'Formula2' tiek izmantots tikai tad, ja parametrs: 'Operator' ir vai nu 'xlBetween', vai 'xlNotBetween', pretējā gadījumā tas tiek ignorēts.
  • Lai noņemtu visu nosacīto formatējumu no jebkuras darblapas, mēs varam izmantot metodi Dzēst šādi:
Šūnas. Formāts. Nosacījumi. Dzēst