¿Cómo usar la función InStr en VBA?

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

VBA

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

VBA

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.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario