Deze zelfstudie laat zien hoe u VBA kunt gebruiken om een cel of een celbereik te markeren.
Voorwaardelijke opmaak is een manier om cellen in Excel te markeren. We kunnen VBA ook gebruiken om celmarkering uit te voeren.
Markeer een cel
Om een cel in VBA te markeren, kunnen we de eenvoudige procedure gebruiken zoals hieronder weergegeven.
123 | Sub HighlightCell()ActiveCell.Interior.Color = vbRedEinde sub |
Markeer een reeks cellen
Op dezelfde manier kunnen we een celbereik selecteren en alle cellen in het bereik markeren.
1234 | Sub HighlightBereik()Bereik ("A1:A10"). SelecteerSelectie.Interieur.Kleur = vbRoodEinde sub |
Markeer cellen op basis van celwaarde
Om een voorwaarde toe te voegen voor het markeren van een cel, kunnen we een IF-statement gebruiken om de cel te markeren als de waarde van de cel boven een bepaalde waarde ligt, in dit geval groter dan 10.
12345 | Sub HighlightCell_1Als ActiveCell.Value > 10 danActiveCell.Interior.Color = vbRedStop alsEinde sub |
Markeer een bereik van cellen op basis van celwaarde
Om de waarden in een celbereik te controleren, moeten we door elke cel lopen, de waarde ervan bepalen en vervolgens de cel dienovereenkomstig markeren. In het onderstaande voorbeeld zullen we eerst vaststellen dat de waarde in het bereik een getal is en vervolgens testen of dat getal groter is dan 10.
12345678910 | Sub HighlightRangeOfCells()Dim rng als bereikVoor elke rng binnen bereik ("A1:A10")Als IsNumeriek(rng.Value) DanAls rng.Waarde > 10 Danrng.Interieur.Kleur = vbRoodStop alsStop alsVolgende belEinde sub |
Markeer een cel met voorwaardelijke opmaak
We kunnen VBA ook gebruiken om voorwaardelijke opmaak toe te passen op een cel om de cel te markeren. In het onderstaande voorbeeld wordt voorwaardelijke opmaak toegepast op elke cel in het bereik. Net als in het bovenstaande voorbeeld testen we eerst of de cel een numerieke waarde bevat en passen we vervolgens de voorwaardelijke opmaak toe.
12345678910 | SubsetVoorwaardelijkeOpmaak()Dim rng als bereikVoor elke rng binnen bereik ("A1:A10")Als IsNumeriek(rng.Value) Danrng.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=10"rng.FormatConditions(1).Interior.Color = vbRedrng.FormatConditions(1).StopIfTrue = FalseStop alsVolgende belEinde sub |
Markeer een cel wanneer selectie verandert
We kunnen de markering van een cel dynamisch maken wanneer de celaanwijzer in het huidige werkblad beweegt met behulp van de Worksheet_Change-gebeurtenis. In het onderstaande voorbeeld worden alle markeringen in het blad verwijderd (behalve die met voorwaardelijke opmaak) en wordt de actieve cel rood gemarkeerd (ColorIndex = 3).
1234 | Privé subwerkblad_SelectionChange (ByVal-doel als bereik)ActiveSheet.Cells.Interior.ColorIndex = xlColorIndexNoneTarget.Interior.ColorIndex = 3Einde sub |