Función Instr

Devuelve la posición de la primera ocurrencia de una cadena dentro de otra.

Sintaxis

InStr([start, ]string1, string2[, compare])

Argumentos:

  • Start: opcional. Expresión numérica que define la posición inicial de cada búsqueda. Si se omite, la búsqueda comienza en la posición del primer carácter. Si el inicio contiene un valor nulo, se produce un error. El argumento start es necesario si se especifica compare.
  • string1: necesario. Expresión de cadena que se busca.
  • string2: necesario. Expresión de cadena buscada.
  • Compare: opcional. Valor numérico que indica el tipo de comparación que se debe utilizar al evaluar las subcadenas. Consulte la sección Configuración para ver los valores. Si se omite, se realiza una comparación binaria.
  • Configuración: el argumento compare puede tener los siguientes valores.

    Tabla 11-15 Constantes de comparación y descripciones

    Constante Valor Descripción
    vbBinaryCompare 0 Realiza una comparación binaria.
    vbTextCompare 1 Realiza una comparación textual.

Valor devuelto

La función InStr devuelve los siguientes valores:

Tabla 11-16 Valores de retorno de la función Instr

Si InStr devuelve
string1 es de longitud cero 0
string2 es de longitud cero Inicio
No se encuentra string2 0
string2 se encuentra en string1 Posición en la que se encuentra la coincidencia.
inicio > Len(string2) 0

Observaciones

En los siguientes ejemplos se utiliza InStr para buscar una cadena:

Ejemplo 1:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.  
SearchChar = "P"   ' Search for "P".
MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). 
' Output: 9

Ejemplo 2:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, SearchChar)   
' Comparison is binary by default (last argument is omitted)
' Default Comparison starting at the first character
' Output: 9    

Ejemplo 3:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4.
'Output: 6
MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. 
'Output: 9

Ejemplo 4:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1.
'Output: 0 ("W" is not found).