Vba: come evidenziare i primi n valori nella colonna


Puoi utilizzare la seguente sintassi in VBA per evidenziare i primi N valori di una colonna in Excel:

 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

Questa particolare macro evidenzierà i 3 valori più alti nell’intervallo A2:A11 .

Per evidenziare un numero diverso di valori superiori, è sufficiente modificare la riga For i = da 1 a 3 per avere un limite superiore diverso.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: evidenzia i primi N valori nella colonna utilizzando VBA

Supponiamo di avere i seguenti valori nella colonna A del nostro foglio di calcolo Excel:

Possiamo creare la seguente macro per evidenziare i primi 3 valori più grandi nell’intervallo 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

Quando eseguiamo questa macro, riceviamo il seguente output:

VBA evidenzia i primi N valori nella colonna

Nota che le celle contenenti i 3 valori più alti nella colonna A sono ora evidenziate.

Tieni presente che puoi anche modificare il colore da utilizzare per l’evidenziazione nonché il numero di valori primari da evidenziare.

Ad esempio, possiamo utilizzare la seguente macro per evidenziare in verde i primi 5 valori della colonna 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

Quando eseguiamo questa macro, riceviamo il seguente output:

Nota che le celle contenenti i 5 valori più alti nella colonna A sono ora evidenziate in verde.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come applicare la formattazione condizionale alle celle
VBA: come applicare la formattazione condizionale ai valori duplicati
VBA: come trovare il valore in una colonna

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *