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
04/11/2012 a las 11:15 pm
Es similiar a la función InStr, aunque cuando esta función realiza la comparación no distingue minúsculas y mayúscula, en cambio esta función InStrRev poniendo 1 en el ultimo parámetro, hace la búsqueda independientemente de estos, muy buena función.
27/01/2013 a las 8:48 pm
Con las combinaciones adecuadas, esta funcion puede utilizarse dentro de una macro mas compleja que se encargue de realizar busquedas especificas, dentro de un rango determinado y en hojas o archivos tambien especificos.
14/07/2013 a las 9:54 pm
La función InStrRev nos permite localizar la posicion de una cadena de caracteres en una gran base de datos. Esta funcion se debe complementar con la funcion inputbox, para asi poder trasmitir al usuario lo que se requiere buscar en las hojas de cálculo.
Cabe mencionar que esta funcion puede servir para grandes aplicaciones, ya que nos permitirá poder realizar busquedas en varias hojas de càlculo y al ser complementada por otras funciones, incluso obtener información compleja de ellas.
08/09/2013 a las 12:03 am
Una función interesante para realizar las búsquedas de palabras o letras aunque al parecer aplica sol para lo que se escriba en el VBA, es decir cuando se escriban las macros y no para la información contenida en las hojas de cáculo, como comprobé al escribir el código, el cual tuve que hacer manualmente porque al copiar y pegar el ejemplo publicado, el Excel arroja un error de sintaxis.
24/01/2014 a las 11:14 pm
Función muy útil para búsquedas específicas. Me gustaría saber cómo utlizarla cuando deseo iniciar la búsqueda en una posición específica de la cadena, que no sea la última. Por ejemplo, para una cadena que contenga más de una vez un caracter y desee siempre encontrar el que está después o antes de determinada posición. Saludos.
27/09/2014 a las 4:03 pm
es muy útil porque es mas fácil de utilizar y avanzar mas rapido.