Voorwaardelijke opmaak instellen voor een gebied met VBA in Microsoft Excel

Anonim

In dit artikel zullen we een macro maken om voorwaardelijke opmaak toe te passen in het geselecteerde gebied.

We hebben willekeurige getallen als voorbeeldgegevens gebruikt om de werking van de macro aan te tonen.

Macro kan worden uitgevoerd door op de knop "Max zoeken" op het "Hoofd"-blad te klikken.

Logische uitleg

We hebben de macro "ConditionalFormat" gemaakt om voorwaardelijke opmaak toe te passen op het geselecteerde gebied. Deze macro markeert de cel in violette kleur, die de maximale waarde in het geselecteerde gebied bevat.

Alvorens deze macro uit te voeren, moet men een gebied selecteren waarop hij de voorwaardelijke opmaak wil toepassen.

We hebben bijvoorbeeld een celbereik van B9 tot F17 geselecteerd als voorbeeld van geselecteerde gegevens.

Bij het uitvoeren van de macro na het selecteren van het voorbeeldgebied, wordt voorwaardelijke opmaak toegepast op het geselecteerde gebied en cel D16, die de hoogste waarde (97) bevat, wordt in violette kleur gemarkeerd.

Neem nu nog een monster. We hebben het bereik van cel B10 tot F13 geselecteerd als tweede monstergebied.

Nadat u het tweede voorbeeldgebied hebt geselecteerd, klikt u op de knop "Max zoeken" om de macro uit te voeren. Voorwaardelijke opmaak wordt toegepast op het geselecteerde gebied en cel C11 wordt in violette kleur gemarkeerd, omdat het de maximale waarde (92) in het geselecteerde gebied bevat.

Nadat de macro voor twee verschillende voorbeelden is uitgevoerd, wordt op beide voorbeelden voorwaardelijke opmaak toegepast. In de voorbeeldgegevens worden zowel de cellen C11 als D16 in violette kleur gemarkeerd, omdat ze de maximale waarden in hun respectieve monsters vertegenwoordigen.

Als waarden in een van de voorbeelden worden gewijzigd en een van de nieuw ingevoegde waarden de hoogste waarde is, wordt de cel met die bepaalde waarde gemarkeerd.

Code uitleg

Selectie.FormaatVoorwaarden.Verwijderen

Bovenstaande code wordt gebruikt om voorwaardelijke opmaak te verwijderen die op de geselecteerde gegevens is toegepast.

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _

"=" & Selectie.Cellen(1).Adres(False, False) & "=MAX(" & Selectie.Adres & ")"

Bovenstaande code wordt gebruikt om een ​​nieuwe voorwaardelijke opmaak toe te voegen. Type geeft aan dat de uitdrukking wordt gebruikt om de opmaak van de voorwaarde toe te passen. Formule van de uitdrukking is gedefinieerd in Formule1.

Selectie.Cellen(1).Adres(False, False)

Bovenstaande code wordt gebruikt om te verwijzen naar het adres van de eerste cel in de selectie.

"=" & Selectie.Cellen(1).Adres(False, False) & "=MAX(" & Selectie.Adres & ")"

Bovenstaande code wordt gebruikt om de waarde van de eerste geselecteerde cel te vergelijken met de maximale waarde van de selectie.

Selection.FormatConditions(1).Interior.ColorIndex = 39

Bovenstaande code wordt gebruikt om violette kleur toe te wijzen aan de cel die voldoet aan de voorwaarde van de opmaak.

Volg hieronder voor de code:

 Sub ConditionalFormat() Met Selectie 'Verwijder alle eerdere voorwaardelijke opmaak .FormatConditions.Delete' voeg voorwaardelijke opmaak toe aan geselecteerde cel .FormatConditions.Add Type:=xlExpression, Formula1:= _ "=" & Selection.Cells(1).Address(False) , False) & "=MAX(" & Selection.Address & ")" 'Toewijzen van violette kleur voor de voorwaardelijke opmaak .FormatConditions(1).Interior.ColorIndex = 39 End With End Sub 

Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.

We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite