La función InStrRev se utiliza para recuperar la posición de una cadena de caracteres que se encuentra contenida dentro se otra cadena más larga. La función requiere de 4 argumentos donde los dos últimos son opcionales.
InStrRev("cadena sobre la que efectúa la búsqueda", "cadena que se busca", posición de inicio (opcional), tipo de comparación (opcional))
Posición de inicio: Es un número que establece la posición inicial para cada búsqueda. Si se omite, se utiliza –1, que significa que la búsqueda empieza en la posición del último carácter.
Tipo de comparación: Es un valor numérico que indica la clase de comparación que se utilizará cuando se evalúen las sub-cadenas. Si se omite, se realiza una comparación binaria. También puede utilizarse 1, que significa que se realizará una comparación basada en el texto.
Ejemplo:
En el siguiente caso se tratará de recuperar la posición que ocupa la palabra "tarea" dentro de la cadena almacenada en la variable CadenaTmp.
Sub Macro1()
Dim CadenaTmp As String
CadenaTmp = "Esta cadena contiene la palabra tarea"
MsgBox InStrRev(CadenaTmp, "tarea", -1)
End Sub
Corremos la función y obtenemos lo siguiente:
Esto indica que la palabra tarea empieza en la posición 33 de la cadena ya que el espacio en blanco a la izquierda de la letra "t" es la posición 32.
Por defecto se utiliza el tipo de comparación binaria que diferencia mayúsculas de minúsculas, pero si queremos utilizar la comparación basada en texto procedemos de la siguiente forma:
Al colocar al final el parámetro 1 indicamos que estamos buscando la letra "O" ya sea en mayúsculas o minúsculas.
Sub Macro1()
Dim CadenaTmp As String
CadenaTmp = "Esta cadena contiene la palabra tarea"
MsgBox InStrRev(CadenaTmp, "O", -1, 1)
End Sub
Elaborado por: Sandro Calzada
6 comentarios
Escriba un comentario →