Vba: como verificar se uma string contém outra string
Você pode usar a função Instr() em VBA para verificar se uma string contém outra string.
Esta função usa a seguinte sintaxe básica:
Instr(início, string1, string2,…)
Ouro:
- start : A posição inicial da pesquisa
- string1 : a string a ser pesquisada
- string2 : a string que você está tentando encontrar
O exemplo a seguir mostra como usar esta função na prática.
Exemplo: use VBA para verificar se string contém outra string
Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vários times de basquete:
Agora digamos que queremos verificar se cada string na coluna Equipe contém “avs” em algum lugar da string.
Podemos usar a seguinte sintaxe em VBA para verificar se cada string na coluna Team contém “avs” e, em caso afirmativo, retornar a linha inteira nas colunas D e E:
Sub StringContains() Dim i As Integer , i_num As Integer For i = 2 To 9 If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then i_num = i_num + 1 Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value End If Next i End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que cada uma das linhas que contém a string “avs” em algum lugar da coluna Equipe é retornada nas colunas D e E.
Neste exemplo, apenas duas equipes (Mavs e Cavs) continham “avs” na coluna Equipe.
Para procurar uma string diferente, basta substituir “avs” no código acima pela string de sua escolha.
Nota nº 1: No código, usamos For i = 2 to 9 , pois as células A2 a A9 continham as strings nas quais estávamos interessados. Sinta-se à vontade para alterar esse intervalo dependendo do intervalo de células que você está procurando.
Nota nº 2 : você pode encontrar a documentação completa da função Instr() no 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 contar o número de linhas no intervalo
VBA: Como calcular o valor médio do intervalo