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 EnCad consta de los siguientes 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 valor nulo, se produce un error. El argumento inicio es necesario si se especifica comparar. |
| cadena1 | Obligatorio. Expresión de cadena que se está buscando. |
| cadena2 | Obligatorio. Expresión de cadena buscada. |
| comparar | Opcional. Especifica el tipo de comparación de cadenas. Si comparar es Null, se producirá un error. Si se omite comparar, la configuración OptionCompare 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. |
Recomendación
El Generador de expresiones tiene IntelliSense, por lo que puede ver qué argumentos requiere la expresión.
Configuración
La configuración del argumento de comparación es:
| Constante | Valor | Descripción |
|---|---|---|
| vbUseCompareOption | -1 | Realiza una comparación utilizando 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 |
| string1 is Null | Nulo |
| cadena2 es de longitud cero | iniciar |
| string2 is Null | Nulo |
| No se encuentra String2 | 0 |
| cadena2 se encuentra dentro de cadena1 | Posición en la que se encuentra la coincidencia |
| cadena inicial2 > | 0 |
Observaciones
La función EnCadB se usa con los datos de bytes contenidos en una cadena. En lugar de devolver la posición de caracteres de la primera aparición de una cadena dentro de otra, InStrB devuelve la posición de byte.
Ejemplos
Use la función EnCad 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 (denominado direcciónIP), puede usar InStr para buscarlo, así:
InStr(1,[IPAddress],".")
La función EnCad examina cada valor del campo direcciónIP y devuelve la posición del primer punto. 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 operan en la salida de la función EnCad , para extraer la parte de la dirección IP que precede al primer punto, así:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
En este ejemplo, InStr(1,[IPAddress],".") Devuelve la posición del primer punto. Restar 1 determina cuántos caracteres preceden al primer punto, en este caso, 2. A continuación, la función Izquierda extrae esa cantidad de caracteres de la parte izquierda del campo direcciónIP y devuelve el valor 10.
Uso de InStr 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 EnCad 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.