Retorna uma Variante (Longo) que especifica a posição da primeira ocorrência de uma cadeia em outra.
Sintaxe
InStr([start, ] string1, string2 [, compare ] )
A sintaxe da função InStr tem esses argumentos:
| Argumento | Descrição |
|---|---|
| início | Opcional. Expressão numérica que define a posição inicial para cada pesquisa. Se omitido, a pesquisa começará na posição do primeiro caractere. Se o início contiver Null, ocorrerá um erro. O argumento inícioserá necessário se comparar for especificado. |
| cadeia1 | Obrigatório. Expressão de cadeia de caracteres que está sendo pesquisada. |
| cadeia2 | Obrigatório. Expressão de cadeia de caracteres procurada. |
| comparar | Opcional. Especifica o tipo de comparação de cadeia de caracteres. Se comparar for Nulo, ocorrerá um erro. Se a comparação for omitida, a configuração OptionCompare determinará o tipo de comparação. Especifique um LCID válido (LocaleID) para usar regras específicas da localidade na comparação. |
Dica
O Construtor de Expressões tem IntelliSense, para que você possa ver quais argumentos sua expressão exige.
Configurações
As configurações de argumento de comparação são:
| Constante | Valor | Descrição |
|---|---|---|
| vbUseCompareOption | -1 | Executa uma comparação usando a configuração da instrução Option Compare . |
| vbBinaryCompare | 0 | Executa uma comparação binária. |
| vbTextCompare | 1 | Executa uma comparação textual. |
Valores retornados
| If | InStr retorna |
|---|---|
| string1 é de comprimento zero | 0 |
| string1 é Null | Nulo |
| string2 é de comprimento zero | Começar |
| string2 é Null | Nulo |
| string2 não é encontrado | 0 |
| string2 é encontrado dentro da cadeia de caracteres1 | Posição na qual a correspondência é encontrada |
| iniciar cadeia > de caracteres2 | 0 |
Comentários
A função InStrB é usada com dados de bytes contidos em uma cadeia de caracteres. Em vez de retornar a posição do caractere da primeira ocorrência de uma cadeia de caracteres dentro de outra, o InStrB retorna a posição de byte.
Exemplos
Usar a função InStr em uma expressão Você pode usar o InStr onde puder usar expressões. Por exemplo, se você quiser encontrar a posição do primeiro período (.) em um campo que contém endereços IP (chamados IPAddress), você pode usar o InStr para encontrá-lo, assim:
InStr(1,[IPAddress],".")
A função InStr examina cada valor no campo IPAddress e retorna a posição do primeiro período. Portanto, se a primeira parte do endereço IP for 10., a função retornará o valor 3.
Em seguida, você pode usar outras funções, operando na saída da função InStr , para extrair a parte do endereço IP que precede o primeiro período, assim:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
Neste exemplo, InStr(1,[IPAddress],".") retorna a posição do primeiro período. A subtração 1 determina quantos caracteres precedem o primeiro período, nesse caso, 2. A função Esquerda então extrai muitos caracteres da parte esquerda do campo IPAddress, retornando o valor 10.
Usar o InStr no código VBA
Observação
Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications).
Este exemplo usa a função InStr para retornar a posição da primeira ocorrência de uma cadeia de caracteres dentro de outra.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.