- Exemplo: Utilizar o VBA para verificar se uma cadeia de caracteres contém outra cadeia de caracteres
É possível utilizar o Instr() em VBA para verificar se uma cadeia de caracteres contém outra cadeia de caracteres.
Esta função utiliza a seguinte sintaxe básica:
Instr(início, string1, string2, ...)
onde:
- início Posição inicial da pesquisa
- string1 A cadeia de caracteres a pesquisar
- string2 : A cadeia de caracteres que está a tentar encontrar
O exemplo seguinte mostra como utilizar esta função na prática.
Exemplo: Utilizar o VBA para verificar se uma cadeia de caracteres contém outra cadeia de caracteres
Suponha que temos o seguinte conjunto de dados no Excel que contém informações sobre várias equipas de basquetebol:
Agora, suponha que gostaríamos de verificar se cada cadeia de caracteres na coluna Equipa contém "avs" algures na cadeia.
Podemos utilizar a seguinte sintaxe em VBA para verificar se cada cadeia de caracteres na coluna Equipa contém "avs" e, em caso afirmativo, devolver 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, obtemos a seguinte saída:
Repare que cada uma das linhas que continha a cadeia "avs" algures na coluna Equipa é devolvida nas colunas D e E.
Neste exemplo, apenas duas equipas (Mavs e Cavs) continham "avs" na coluna Equipa.
Para procurar uma cadeia de caracteres diferente, basta substituir "avs" no código acima pela cadeia de caracteres à sua escolha.
Nota 1: No código, utilizámos Para i = 2 a 9 uma vez que as células A2 a A9 continham as cadeias de caracteres em que estávamos interessados. Pode alterar este intervalo consoante o intervalo de células que está a pesquisar.
Nota #2 : Pode encontrar a documentação completa para o Instr() em VBA aqui.