Vba: jak wyróżnić pierwsze n wartości w kolumnie


Możesz użyć następującej składni w VBA, aby podświetlić pierwsze N wartości kolumny w Excelu:

 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

To konkretne makro podświetli 3 najwyższe wartości z zakresu A2:A11 .

Aby wyróżnić inną liczbę górnych wartości, po prostu edytuj wiersz For i = 1 To 3, aby ustawić inny górny limit.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Podświetl pierwsze N wartości w kolumnie za pomocą VBA

Załóżmy, że w kolumnie A naszego arkusza kalkulacyjnego Excel mamy następujące wartości:

Możemy utworzyć następujące makro, aby podświetlić pierwsze 3 największe wartości z zakresu A2:A11 :

 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

VBA podświetla pierwsze N wartości w kolumnie

Zauważ, że komórki zawierające 3 najwyższe wartości w kolumnie A są teraz podświetlone.

Pamiętaj, że możesz także zmienić kolor podświetlania, a także liczbę głównych wartości do wyróżnienia.

Przykładowo możemy użyć poniższego makra, aby podświetlić na zielono pierwsze 5 wartości w kolumnie A:

 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórki zawierające 5 najwyższych wartości w kolumnie A są teraz podświetlone na zielono.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak zastosować formatowanie warunkowe do komórek
VBA: Jak zastosować formatowanie warunkowe do zduplikowanych wartości
VBA: Jak znaleźć wartość w kolumnie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *