Contenido
En VBA, la función InStrRev se utiliza para buscar la posición de una subcadena dentro de una cadena de texto, comenzando la búsqueda desde el final de la cadena hacia el principio. La función devuelve la posición de la primera ocurrencia de la subcadena encontrada mirando en dirección inversa.
Sintaxis básica
InStrRev(StringCheck, StringMatch, [Start], [Compare])
- StringCheck es la cadena de texto en la que deseas buscar.
- StringMatch es la subcadena que estás buscando.
- Start (opcional) es la posición inicial desde la cual comenzará la búsqueda, empezando desde el final hacia el comienzo. Si no se especifica, se asume el largo completo de StringCheck.
- Compare (opcional) especifica el tipo de comparación: vbBinaryCompare (predeterminado) para una comparación binaria o vbTextCompare para una comparación textual que no distingue entre mayúsculas y minúsculas.
La función InStrRev devuelve un número entero que representa la posición inicial de la primera ocurrencia de StringMatch desde el final de StringCheck. Si no se encuentra la subcadena, devuelve 0.
Ejemplo
Sub EjemploInStrRev()
Dim cadena As String
Dim subcadena As String
Dim posicion As Integer
cadena = "Hola, ¿cómo estás? ¿Qué tal estás hoy?"
subcadena = "estás"
' Usar InStrRev para encontrar la última ocurrencia de "estás".
posicion = InStrRev(cadena, subcadena)
' Si posicion es diferente de 0, se encontró la subcadena
If posicion <> 0 Then
MsgBox "La última ocurrencia de '" & subcadena & "' empieza en la posición " & posicion
Else
MsgBox "La subcadena '" & subcadena & "' no se encontró."
End If
End Sub
En este ejemplo, InStrRev busca la última ocurrencia de la palabra «estás» en la cadena dada y muestra una ventana de mensaje con la posición de inicio. Como hay dos ocurrencias de la palabra «estás» en la cadena, la función devolverá la posición de la segunda, ya que la búsqueda comienza desde el final de la cadena.