Vba: hoe de eerste n-waarden in de kolom te markeren


U kunt de volgende syntaxis in VBA gebruiken om de eerste N-waarden van een kolom in Excel te markeren:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Deze specifieke macro zal de 3 hoogste waarden in het bereik A2:A11 benadrukken.

Om een ander aantal bovenwaarden te markeren, bewerkt u eenvoudigweg de regel For i = 1 To 3 om een andere bovengrens te krijgen.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Markeer de eerste N-waarden in de kolom met behulp van VBA

Stel dat we de volgende waarden in kolom A van ons Excel-spreadsheet hebben:

We kunnen de volgende macro maken om de eerste 3 grootste waarden in het bereik A2:A11 te markeren:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

VBA markeert de eerste N-waarden in de kolom

Merk op dat de cellen met de 3 hoogste waarden in kolom A nu gemarkeerd zijn.

Houd er rekening mee dat u ook de kleur kunt wijzigen die u wilt gebruiken voor het markeren, evenals het aantal primaire waarden dat u wilt markeren.

We kunnen bijvoorbeeld de volgende macro gebruiken om de eerste 5 waarden in kolom A groen te markeren:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 5 values in range
    For Each rng In EntireRange
        
        For i = 1 To 5
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbGreen
        End If
        Next
    
    Next rng

End Sub

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

Merk op dat de cellen met de 5 hoogste waarden in kolom A nu groen gemarkeerd zijn.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

VBA: voorwaardelijke opmaak op cellen toepassen
VBA: voorwaardelijke opmaak toepassen op dubbele waarden
VBA: hoe u de waarde in een kolom kunt vinden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert