Vba: como encontrar um valor em uma coluna (com exemplo)


Você pode usar a seguinte sintaxe básica no VBA para encontrar um valor em uma coluna no Excel:

 Sub FindValue()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Esta macro específica irá pesquisar em toda a coluna A da planilha atualmente ativa a string “Foguetes” e, se encontrada, alterará a cor da fonte da célula para vermelho e deixará a fonte em negrito.

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

Exemplo: como encontrar um valor em uma coluna usando VBA

Suponha que temos o seguinte conjunto de dados contendo informações sobre vários jogadores de basquete:

Digamos que queremos encontrar o nome do time “Rockets” na coluna A e, uma vez encontrado, converter a cor da fonte da célula para vermelho e deixar a fonte em negrito.

Podemos criar a seguinte macro para fazer isso:

 Sub FindValues()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que a fonte na célula que contém a string “Rockets” agora está vermelha e em negrito.

Todas as outras células simplesmente mantiveram a fonte preta.

Observe que o argumento MatchCase:=False no código diz ao VBA para realizar uma pesquisa sem distinção entre maiúsculas e minúsculas.

Portanto, se o nome do time na coluna A fosse “foguetes”, a macro sempre encontraria essa string e deixaria a fonte vermelha e em negrito.

Recursos adicionais

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

VBA: Como escrever funções AVERAGEIF e AVERAGEIFS
VBA: Como escrever funções SUMIF e SUMIFS
VBA: Como escrever funções COUNTIF e COUNTIFS

Add a Comment

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