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ātu 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 pievienojiet šādus parametrus 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 “Tips” ir balstīts uz šūnas vērtību.
- Formula1: neobligāti, apzīmē vērtību vai izteiksmi, kas saistīta ar nosacīto formātu.
- Formula2: neobligāti, apzīmē vērtību vai izteiksmi, kas saistīta 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.
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:

Mēs izmantojam FormatConditions. Lai to paveiktu, pievienojiet funkciju šādi:
- 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:
Sub formatting() 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") Set condition2 = rng.FormatConditions.Add(xlCellValue, xlLess, "=50") End Sub

- Define and set the format to be applied for each condition

Copy and paste this code into your VBA class module.
Code:
Sub formatting() 'Definining the variables: Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition 'Fixing/Setting the range on which conditional formatting is to be desired Set rng = Range("B2", "B11") 'To delete/clear any existing conditional formatting from the range rng.FormatConditions.Delete 'Defining and setting the criteria for each conditional format Set condition1 = rng.FormatConditions.Add(xlCellValue, xlGreater, "=80") Set condition2 = rng.FormatConditions.Add(xlCellValue, xlLess, "=50") 'Defining and setting the format to be applied for each condition With condition1 .Font.Color = vbBlue .Font.Bold = True End With With condition2 .Font.Color = vbRed .Font.Bold = 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ā:

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 / nav uzrakstī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 'Onamestor' formātā 'Format.Add' uzskaitījums: 'Xcontains' ir pārbaudiet š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ā krāsā un treknrakstā:

Below are some other instances/criteria that can be used to test and thus apply VBA conditional formatting on:
- Format by Time Period
- Average condition
- Colour Scale condition
- IconSet condition
- Databar condition
- Unique Values
- Duplicate Values
- Top10 values
- Percentile Condition
- Blanks Condition, etc.
With different conditions to be tested, different values/enumeration are taken by parameters of ‘Add.’
Things to Remember About VBA Conditional Formatting
- ‘Add’ method with ‘FormatConditions’ is used to create a new conditional format, ’Delete’ method to delete any conditional format, and ‘Modify’ method to alter any existing conditional format.
- The ‘Add’ method with ‘FormatConditions Collection’ fails if more than three conditional formats are created for a single range.
- 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: “Operators” 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