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 Comparação de Opções 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. |
vbDatabaseCompare |
2 |
Microsoft Office Access 2007 somente. Executa uma comparação com base em informações em seu banco de dados. |
Valores retornados
If |
InStr retorna |
---|---|
string1 é de comprimento zero |
0 |
string1 é Null |
Nulo |
string2 é de comprimento zero |
início |
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 retorna 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.