Devuelve un valor de tipo Variant (Long) que especifica la posición de la primera aparición de una cadena dentro de otra.
Sintaxis
InStr ([start, ] string1, string2 [, compare ] )
La sintaxis de la función EnStr tiene estos argumentos:
Argumento |
Descripción |
---|---|
iniciar |
Opcional. Expresión numérica que establece la posición inicial de cada búsqueda. Si se omite, la búsqueda comienza en la posición del primer carácter. Si inicio contiene Null, se producirá un error. El argumento inicio es necesario si se especifica comparar. |
cadena1 |
Requerido. Expresión de cadena en la que se está buscando. |
cadena2 |
Requerido. Expresión de cadena buscada. |
comparar |
Opcional. Especifica el tipo de comparación de cadena. Si comparar es Null, se producirá un error. Si comparar se omite, el valor Comparación de opciones determina el tipo de comparación. Especifique un LCID (LocaleID) válido para usar reglas específicas de la configuración regional en la comparación. |
Sugerencia: El Generador de expresiones tiene IntelliSense, para que pueda ver qué argumentos requiere la expresión.
Configuración
La configuración de los argumentos de comparación es la siguiente:
Constante |
Valor |
Descripción |
---|---|---|
vbUseCompareOption |
-1 |
Realiza una comparación con la configuración de la instrucción Option Compare . |
vbBinaryCompare |
0 |
Realiza una comparación binaria. |
vbTextCompare |
1 |
Realiza una comparación textual. |
Valores devueltos
Si |
InStr devuelve |
---|---|
cadena1 es de longitud cero |
0 |
cadena1 es Null |
Nulo |
cadena2 es de longitud cero |
iniciar |
cadena2 es Null |
Nulo |
cadena2 no se encuentra |
0 |
cadena2 se encuentra dentro de cadena1 |
Posición en la que se encuentra la coincidencia |
iniciar > cadena2 |
0 |
Observaciones
La función InStrB se usa con datos de byte contenidos en una cadena. En lugar de devolver la posición del carácter de la primera aparición de una cadena dentro de otra, InStrB devuelve la posición del byte.
Ejemplos
Usar la función EnStr en una expresión Puede usar InStr siempre que pueda usar expresiones. Por ejemplo, si desea buscar la posición del primer punto (.) en un campo que contiene direcciones IP (denominada IPAddress), puedes usar InStr para encontrarlo, así:
InStr(1,[IPAddress],".")
La función InStr examina cada valor del campo IPAddress y devuelve la posición del primer período. Por lo tanto, si la primera parte de la dirección IP es 10., la función devuelve el valor 3.
A continuación, puede usar otras funciones, que actúan en el resultado de la función EnStr , para extraer la parte de la dirección IP que precede al primer período, así:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
En este ejemplo, InStr(1,[IPAddress],".") devuelve la posición del primer período. Restar 1 determina cuántos caracteres preceden al primer punto, en este caso, 2. A continuación, la función Izquierda extrae muchos caracteres de la parte izquierda del campo IPAddress y devuelve el valor 10.
Usar EnStr en código VBA
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA).
En este ejemplo se usa la función EnStr para devolver la posición de la primera aparición de una cadena dentro de otra.
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.