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:
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