ENCONTRAR VBA

Excel VBA Buscar

Cuando usamos Buscar en una hoja de trabajo normal, presionamos el atajo de teclado CTRL + F y escribimos los datos que necesitamos encontrar y si no el valor deseado, pasamos a la siguiente coincidencia, si hay muchas coincidencias, es una tarea tediosa, pero cuando usamos FIND en VBA, hace las tareas por nosotros y nos da la coincidencia exacta y se necesitan tres argumentos, uno es qué encontrar, dónde encontrar y dónde mirar.

Antes de pasar a VBA y comenzar a usar la función de búsqueda en macros, primero debemos aprender qué es una función de búsqueda en Excel. En Excel normal, en la pestaña Inicio en el grupo de edición, podemos encontrar una función de búsqueda que se usa para encontrar una cadena o un valor en un rango de celdas o una hoja de trabajo completa.

Cuando hacemos clic en esto, obtenemos dos opciones;

Uno es simple de encontrar

Podemos ver que también tiene un modo de opciones que abre otra característica.

Realiza el algoritmo de búsqueda con cuatro restricciones, Buscar qué, Dentro, Buscar y buscar.

La segunda opción en Excel es Buscar y reemplazar que se usa cuando encontramos una cadena pero qué reemplazarla con cualquier otro valor,

Buscar sintaxis de funciones

Hemos aprendido anteriormente qué es Find en Excel básico. En VBA escribimos códigos manualmente, pero las características son las mismas que las de Excel normal. Primero, veamos la sintaxis.

Expression.Find (Qué, buscando,….)

Si el valor que estamos buscando se encuentra con la función de Excel, devuelve la celda donde está el valor y si no se encuentra el valor, el objeto de la función se establece en nada.

Las expresiones en macros son rangos definidos como rango 1 o rango 2. ¿Qué es una palabra clave para lo que queremos buscar para un valor específico? Lookin es una palabra clave para lo que estamos tratando de buscar, ya sea un comentario, una fórmula o una cadena. De manera similar, hay otras restricciones en la función Buscar que son opcionales. El único campo obligatorio requerido es el valor que estamos tratando de buscar.

Básicamente, VBA encuentra que Excel tiene un argumento requerido que es Qué valor queremos buscar. El resto de las restricciones son opcionales y hay muchas restricciones en la función de búsqueda. La función de búsqueda es similar a la función de búsqueda en Excel.

El parámetro de la función de búsqueda es el rango de celdas. Como en qué rango queremos encontrar un valor. Pueden ser unas pocas columnas o algunas celdas o una hoja de trabajo completa.

Ejemplos

Puede descargar esta plantilla de Excel de la función VBA FIND aquí - Plantilla de Excel de la función VBA FIND

Ejemplo 1

Supongamos que nuestros datos tienen los siguientes valores

Intentaremos encontrar “Aran” en los mismos datos.

  • Para escribir un código VBA es necesario tener habilitada la pestaña de desarrollador en Excel para poder escribir códigos VBA.

  • Comenzamos a escribir nuestro código escribiendo el siguiente código como se muestra a continuación,
Submuestra ()

Dim FindS como cadena

Dim Rng como rango

FindS = InputBox ("Ingrese el valor que desea buscar")

Con hojas ("Hoja1"). Rango ("A: A")

  • La muestra es el nombre de la función que se le da al sub.
  • Buscar es la cadena que queremos que busque el usuario que queremos ingresar.
  • Rng es la variable que tomamos para el rango.
  • Ahora le pedimos al usuario que ingrese el valor que se parece a la captura de pantalla a continuación,

  • Ahora definiremos nuestra función de búsqueda en el módulo.

  • La función encuentra el valor ingresado por el usuario en el rango dado.
  • Ahora cerramos la función con los siguientes argumentos.

  • Ahora, si ejecutamos nuestro código primero, el usuario solicita un valor.

  • Una vez que se completa el código, devuelve la celda a donde se encontraron los datos.

Ejemplo # 2

En el ejemplo anterior, había cuatro nombres únicos, pero ¿y si hubiera más de un nombre en los datos, como por ejemplo, considere los datos a continuación?

Podemos ver que el nombre Aran se repite dos veces en los datos anteriores. Si Excel tiene que encontrar el nombre Aran, lo encontrará en la celda A2 y se detendrá, pero hay otro valor similar al de A2 en la celda A6. ¿Cómo recuperar ese valor? Aquí viene la sintaxis de Find (What, After) como ayuda.

Después define la celda después de la cual la referencia queremos buscar los datos.

Escribamos el código para los datos anteriores.

  • Recuerde siempre habilitar la pestaña de desarrollador desde las opciones y luego desde personalizar la cinta en Excel para poder escribir el código en VBA.
  • En VBA obtenemos objetos de Microsoft excel, que es un módulo donde escribimos los códigos.

  • Anteriormente estábamos trabajando en la hoja 1 ahora estamos trabajando en la hoja 2, así que seleccione la hoja 2 para otro módulo y aparecerá una página en blanco.

  • Ahora comience a escribir el código definiendo la función primero como SUB Sample2 () y presione enter.

  • Ahora que hemos definido nuestra función, comenzaremos a entrar en la parte principal que es definir nuestras variables.

  • Defina qué debe tener la variable Find,

  • Seleccione las hojas en las que estamos trabajando, que es la hoja 2 en este ejemplo,

  • Ahora encontraremos el texto que ingrese el usuario después de la celda A2, por lo que definimos nuestra función de búsqueda como se muestra a continuación,

  • Ahora cerramos el código terminando las condiciones with y if.

Lo que hace el código anterior es buscar la cadena después de la celda A2 y devolver la celda donde sea que se encuentre.

Cosas para recordar

  1. Lo primero es lo primero, debemos habilitar la pestaña de desarrollador para usar VBA.
  2. ¿Cuál es el valor específico que debemos encontrar?
  3. Si no se encuentra el valor, el objeto de la función se establece en nada.