Função Instr simples | Posição inicial | Zero | Instr e If | Pesquisa que não diferencia maiúsculas de minúsculas
Usar Instr em Excel VBA para encontrar a posição de uma substring em uma string. A função Instr é bastante versátil.
Coloque um botão de comando em sua planilha e adicione as linhas de código abaixo. Para executar as linhas de código, clique no botão de comando na folha.
Função Instr simples
Por padrão, a função Instr começa a pesquisar no início da string (posição 1).
Código:
Dim state As String
estado = "Virgínia"
MsgBox InStr (estado, "gin")
Resultado:
Nota: string "gin" encontrada na posição 4.
Posição inicial
A segunda função Instr abaixo começa a pesquisar na posição 7.
Código:
Dim state As String
estado = "Carolina do Sul"
MsgBox InStr (estado, "o")
MsgBox InStr (7, estado, "o")
Resultado:
Explicação: a primeira função Instr encontra a string "o" na posição 2. A segunda função Instr começa a pesquisar na posição 7 e encontra a string "o" na posição 10.
Zero
A função Instr retorna 0 se a string não for encontrada (importante, como veremos a seguir).
Código:
Dim state As String
estado = "Flórida"
MsgBox InStr (estado, "nós")
Resultado:
Conclusão: string "us" não encontrada.
Instr e If
Vamos criar um programa VBA simples que usa o Função instr.
Código:
Dim state As String, substring As String
estado = intervalo ("A2"). Valor
substring = intervalo ("B2"). Valor
If InStr (state, substring)> 0 Then
Intervalo ("C2"). Valor = "Encontrado"
Outro
Intervalo ("C2"). Valor = "Não encontrado"
Fim se
Resultado quando você clica no botão de comando na planilha:
Explicação: string "outh" encontrada na posição 2. A função Instr retorna 2. Como resultado, o Excel VBA coloca a string "Found" na célula C2.
Pesquisa que não diferencia maiúsculas de minúsculas
Por padrão, a função Instr executa uma pesquisa com distinção entre maiúsculas e minúsculas. Digite a string "dakota" na célula B2 e clique no botão de comando na planilha.
Explicação: string "dakota" não encontrada (primeira letra não maiúscula). A função Instr retorna 0. Como resultado, o Excel VBA coloca a string "Não encontrado" na célula C2.
Para realizar uma pesquisa que não diferencia maiúsculas de minúsculas, atualize o código da seguinte maneira:
Dim state As String, substring As String
estado = intervalo ("A2"). Valor
substring = intervalo ("B2"). Valor
If InStr (1, state, substring, vbTextCompare)> 0 Then
Intervalo ("C2"). Valor = "Encontrado"
Outro
Intervalo ("C2"). Valor = "Não encontrado"
Fim se
Resultado quando você clica no botão de comando na planilha:
Explicação: a função Instr mostrada acima possui 4 argumentos. Para realizar uma pesquisa que não diferencia maiúsculas de minúsculas, sempre especifique uma posição inicial (primeiro argumento) e use vbTextCompare (quarto argumento).