Vba: como destacar os primeiros n valores na coluna


Você pode usar a seguinte sintaxe no VBA para destacar os primeiros N valores de uma coluna no 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

Esta macro específica irá destacar os 3 valores mais altos no intervalo A2:A11 .

Para destacar um número diferente de valores superiores, basta editar a linha For i = 1 To 3 para ter um limite superior diferente.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: destaque os primeiros N valores na coluna usando VBA

Suponha que temos os seguintes valores na coluna A da nossa planilha Excel:

Podemos criar a seguinte macro para destacar os 3 primeiros maiores valores do intervalo 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 executamos esta macro, recebemos a seguinte saída:

VBA destaca os primeiros N valores na coluna

Observe que as células que contêm os 3 valores mais altos na coluna A agora estão destacadas.

Observe que você também pode alterar a cor a ser usada para realçar, bem como o número de valores primários a serem destacados.

Por exemplo, podemos usar a seguinte macro para destacar os 5 primeiros valores da coluna A em verde:

 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 executamos esta macro, recebemos a seguinte saída:

Observe que as células contendo os 5 valores mais altos na coluna A agora estão destacadas em verde.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como aplicar formatação condicional às células
VBA: Como aplicar formatação condicional a valores duplicados
VBA: Como encontrar o valor em uma coluna

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *