Cómo utilizar la función Buscar en VBA (6 ejemplos)

  • Compartir Este
Hugh West

Una de las funciones más importantes y utilizadas que utilizamos en Aplicación Visual Basic (VBA) es la función Buscar. En este artículo, te mostraré cómo puedes utilizar la función Función FIND de Excel con ejemplos e ilustraciones adecuados.

Descargar el cuaderno de prácticas

Función Buscar en VBA en Excel.xlsm

6 ejemplos rápidos para utilizar la función FIND en VBA

Aquí tenemos un conjunto de datos con el valor Nombres de libros, Autores y Precios de unos libros de una librería llamada Librería Martin.

Hoy nuestro objetivo es ver varios tipos de usos del Buscar función de VBA de este conjunto de datos.

1. Utilice la función Buscar en VBA sin parámetros

Puede utilizar la función Buscar función de VBA sin parámetros.

A continuación, buscará un valor específico dentro de un rango de celdas y devolverá la primera coincidencia que encuentre.

Busquemos el nombre "P. B. Shelly" en la columna Autor ( C4:C13 ).

La línea con el Buscar función será:

Set cell = Rango("C4:C17").Buscar("P. B. Shelly")

El completo Código VBA será:

Código VBA:

 Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Salida:

Produce un Macro llamado Encuentre Si ejecutas la macro, te devolverá $C$6 la primera dirección de celda con el nombre P. B. Shelly .

Más información: Buscar dentro de un rango con VBA en Excel: Incluyendo coincidencias exactas y parciales

2. Aplicar la Función Buscar en VBA con el Parámetro Después (Para Empezar a Buscar desde una Celda Específica)

Puede utilizar la función En con el parámetro Buscar función en VBA Entonces empezará a buscar un valor por debajo de una celda dentro de un rango.

Por ejemplo, empecemos buscando el nombre "P. B. Shelly" de la celda inferior C6 .

La línea de código será:

Set cell = Rango("C4:C13").Find("P. B. Shelly", After:=Rango("C6"))

Y el completo Código VBA será:

Código VBA:

 Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub 

Salida:

Devolverá $C$13 porque empieza a buscar por debajo de la celda C6 , que es de la célula C7 Así que P. B. Shelly en celda C13 primero.

Más información: Cómo encontrar una cadena en una celda utilizando VBA en Excel

3. Ejecute la Función Buscar en VBA con Envoltura alrededor del Parámetro Después (Para Buscar un Valor de Manera Circular)

En En con el parámetro Buscar función busca un valor de forma circular

Es decir, empieza a buscar por debajo de una celda dentro de un rango, termina de buscar en el rango y vuelve a empezar por la parte superior del rango.

Por ejemplo, empecemos buscando el nombre "John Keats" de la celda inferior C8 utilizando el En parámetro.

La línea de código será:

Set cell = Rango("C4:C13").Find("John Keats", After:=Rango("C8"))

Y el completo Código VBA será:

Código VBA:

 Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub 

Salida:

Devolverá $C$7 porque empieza a buscar por debajo de la celda C8 , que es de la célula C9 .

No encuentra nada hasta la celda C13 por lo que de nuevo comienza desde la celda C4 y encuentra uno en la celda C7 .

Lecturas similares:

  • Cómo encontrar cadena con VBA en Excel (8 Ejemplos)
  • Buscar coincidencia exacta usando VBA en Excel (5 maneras)
  • Cómo buscar y reemplazar utilizando VBA (11 maneras)

4. Utilice la función Buscar en VBA con el parámetro LookAt (para coincidencias exactas o parciales)

Puede utilizar la función Buscar función en VBA con el Visite parámetro.

Utilice LookAt = xlWhole para un Exacto coinciden, y LookAt=xlPart para un Parcial partido.

Por ejemplo, intentemos averiguar si existe algún libro con el nombre "Oda" en el Nombre del libro columna ( B4:B13 ).

Si utilizamos xlTodo en la línea de código:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

La salida mostrará un error porque no encontrará ningún exacto partido.

Pero si usas:

Set cell = Rango("B4:B13").Buscar("Oda", LookAt:=xlParte)

Entonces volverá $B$9 porque hay un libro con el nombre "Oda" en la celda B7 Oda al ruiseñor.

Por lo tanto, el código completo del parcial partido es:

Código VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub 

5. Operar la Función Buscar en VBA con el Parámetro SearchDirection (Para Especificar la Dirección de la Búsqueda)

También puede utilizar la función Buscar función en VBA con el Dirección de búsqueda parámetro.

Utilice SearchDirection = xlNext para buscar desde De arriba abajo .

Y SearchDirection = xlPrevious para buscar desde De abajo a arriba .

Por ejemplo, intentemos encontrar al Autor Elif Shafak en la columna Autor ( C4:C13 ).

Si utilizamos xlSiguiente en la línea de código:

Set cell = Rango("C4:C13").Buscar("Elif Shafak", SearchDirection:=xlSiguiente)

Entonces devolverá $C$5 .

Pero si usas:

Set cell = Rango("C4:C13").Buscar("Elif Shafak", SearchDirection:=xlAnterior)

Entonces volverá $C$11 .

Así que el código completo para buscar desde de abajo arriba es:

Código VBA:

 Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub 

6. Función Buscar en VBA con el parámetro MatchCase (para coincidencia sensible o insensible a mayúsculas/minúsculas)

Por último, puede utilizar la función Buscar función con el MatchCase parámetro.

Utilice MatchCase = True para un distingue entre mayúsculas y minúsculas match , y MatchCase=False para un distingue entre mayúsculas y minúsculas partido.

Por ejemplo, intentemos encontrar el libro "madre" en el Nombre del libro columna ( B4:B13 ).

Si utilizamos True en la línea de código:

Set cell = Rango("B4:B13").Buscar("madre", MatchCase:=Verdadero)

La salida mostrará un error porque no encontrará ninguna coincidencia.

Pero si usas:

Set cell = Rango("B4:B13").Buscar("madre", MatchCase:=False)

Entonces volverá $B$9 porque hay un libro llamado "Madre" en celda B8 .

Por lo tanto, el código completo del distingue entre mayúsculas y minúsculas partido es:

Código VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Madre", MatchCase:=False) MsgBox cell.Address End Sub 

Conclusión

Con estos métodos, puede utilizar la función Buscar en una aplicación de Visual Basic. ¿Tiene alguna pregunta? No dude en preguntarnos.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.