Contenido
La función InStr en VBA (Visual Basic for Applications) se utiliza para determinar la posición de la primera aparición de una cadena de texto dentro de otra. La función retorna un valor numérico que indica la posición inicial de la primera cadena dentro de la segunda. Si no se encuentra la primera cadena dentro de la segunda, la función retorna 0.
Sintaxis básica
InStr([start], string1, string2, [compare])
- start (opcional): Es un parámetro de tipo numérico que especifica desde qué posición en string1 se comenzará a buscar string2. Si se omite, la búsqueda comienza en la primera posición.
- string1: La cadena de texto dentro de la cual se busca string2.
- string2: La cadena de texto que se desea encontrar dentro de string1.
- compare (opcional): Especifica el tipo de comparación que se quiere realizar. Puede ser vbBinaryCompare (comparación binaria) o vbTextCompare (comparación de texto sin distinción entre mayúsculas y minúsculas). Si se omite, se utiliza la configuración de comparación de texto del sistema.
Ejemplo
Sub EjemploInStr()
Dim posicion As Integer
Dim textoABuscar As String
Dim textoDondeBuscar As String
textoABuscar = "mundo"
textoDondeBuscar = "Hola mundo, bienvenido al mundo de VBA."
' Empieza a buscar desde la primera posición, sin diferenciar mayúsculas de minúsculas
posicion = InStr(1, textoDondeBuscar, textoABuscar, vbTextCompare)
If posicion > 0 Then
MsgBox "La palabra '" & textoABuscar & "' fue encontrada en la posición " & posicion
Else
MsgBox "La palabra '" & textoABuscar & "' no fue encontrada."
End If
End Sub
En este ejemplo, la función InStr busca la palabra «mundo» dentro de la frase «Hola mundo, bienvenido al mundo de VBA». La búsqueda comienza desde la posición 1 y se realiza sin distinguir entre mayúsculas y minúsculas. La posición en que se encuentra la primera aparición de «mundo» es entonces mostrada en un cuadro de mensaje (MsgBox).
Recuerda que las posiciones en cadenas de VBA comienzan en 1, no en 0 como en algunos otros lenguajes de programación.