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