Como usar curingas em vba (com exemplos)
Você pode usar o operador Like no VBA com os seguintes curingas integrados para pesquisar padrões específicos em strings:
- * : Corresponde a qualquer número de caracteres
- ? : Corresponde a um único caractere
- # : corresponde a um único dígito
- [] : corresponde a qualquer caractere dentro do intervalo
Os exemplos a seguir mostram como usar esses curingas na prática.
Exemplo 1: Use *Wildcard para procurar uma substring
Suponha que temos a seguinte lista de alimentos na coluna A:
Podemos criar a seguinte macro para procurar a substring “quente” em cada string na coluna A e exibir os resultados na coluna B:
Sub FindString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *hot* " Then
Range(" B " & i) = " Contains hot "
Else
Range(" B " & i) = " Does Not Contain hot "
End If
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Exemplo 2: Use o caractere curinga * para pesquisar strings que terminem com um padrão
Suponha que temos a seguinte lista de nomes de times de basquete na coluna A:
Podemos criar a seguinte macro para procurar strings na coluna A que terminam em “ets” e exibir os resultados na coluna B:
Sub FindEndingString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *ets " Then
Range(" B " & i) = " Ends in ets "
Else
Range(" B " & i) = " Does Not End in ets "
End If
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Exemplo 3: Use o curinga # para pesquisar números
Suponha que temos a seguinte lista de strings na coluna A:
Podemos criar a seguinte macro para procurar strings na coluna A contendo números e exibir os resultados na coluna B:
SubFindNumbers ()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *#* " Then
Range(" B " & i) = " Contains Numbers "
Else
Range(" B " & i) = " Does Not Contain Numbers "
End If
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Exemplo 4: Use o curinga [] para pesquisar vários caracteres
Suponha que temos a seguinte lista de nomes de times de basquete na coluna A:
Podemos criar a seguinte macro para pesquisar na coluna A strings contendo r, s ou t em algum lugar do nome da equipe e exibir os resultados na coluna B:
Sub FindSpecificLetters()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *[rt]* " Then
Range(" B " & i) = " Contains r, s, or t "
Else
Range(" B " & i) = " Does Not Contain r, s or t "
End If
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Nota : Você pode encontrar a documentação completa do curinga do VBA aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns usando VBA:
VBA: Como contar ocorrências de caracteres em uma string
VBA: como verificar se uma string contém outra string
VBA: Como contar células com texto específico