
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.
La sintaxis de la función `InStrRev` es la siguiente:
InStrRev(StringCheck, StringMatch, [Start], [Compare])
Donde:
- `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.
Aquí tienes un ejemplo de cómo usar `InStrRev` en VBA:
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.