Funci贸n FIND en VBA: 驴C贸mo usarla?

Quiere aprender a usar Funci贸n ENCONTRAR en VBA馃嚙馃嚪 隆Entonces est谩s en el lugar correcto!

驴Qui茅n no conoce la opci贸n BUSCAR en Excel? Si ha estado trabajando con Excel durante alg煤n tiempo, es probable que haya utilizado la funci贸n BUSCAR o la popular tecla de m茅todo abreviado Ctrl + L para ubicar una palabra o contenido que desea buscar en toda la hoja de trabajo. como todo el libro de trabajo.

Asimismo, en VBA tenemos una funci贸n llamada FIND que nos puede ayudar a encontrar el valor que buscamos.

Siga los detalles a continuaci贸n para obtener m谩s informaci贸n sobre esta funci贸n a trav茅s de ejemplos pr谩cticos.

驴C贸mo funciona la funci贸n FIND en VBA?

La funci贸n FIND de Excel VBA busca un valor espec铆fico dentro de un rango espec铆fico. Busca la primera aparici贸n de ese valor y, si lo encuentra, la funci贸n devuelve la celda que lo contiene. Sin embargo, si no se encuentra una coincidencia, la funci贸n no devuelve nada. La funci贸n VBA FIND puede devolver una coincidencia exacta o parcial.

Por ejemplo, el siguiente c贸digo busca el texto 芦San Pablo禄 en el intervalo A1: A10 en 芦Hoja de trabajo1馃嚙馃嚪

With Sheets("Planilha1").Range("A1:A10")
Set Rng = .Find(What:="S茫o Paulo")

El prop贸sito de usar la funci贸n FIND en VBA es encontrar el valor deseado en un conjunto de datos dado. Con un c贸digo VBA, puede automatizar la tarea de encontrar valores en Excel.

Sintaxis de la funci贸n VBA FIND

La sintaxis de la funci贸n VBA FIND se declara de la siguiente manera:

expresi贸n.Find(Qu茅, Despu茅s, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

D贸nde:

expresi贸n: es el objeto de rango, que precede a la funci贸n FIND en el c贸digo VBA. El rango de b煤squeda puede ser una o m谩s filas, columnas o la hoja de c谩lculo completa. La funci贸n VBA FIND acepta los siguientes argumentos:

  • Qu茅: Este es el valor a buscar. Puede ser num茅rico, textual o cualquier otro tipo de datos de Excel. Este argumento es el mismo que la opci贸n Buscar de la ventana 芦encontrar y reemplazar鈥 de Excel.
  • Despu茅s: Indica la celda desde la que se iniciar谩 la b煤squeda. Se ingresa como una sola referencia de celda. Si se omite este argumento, la b煤squeda comienza despu茅s de la celda en la esquina superior izquierda del rango de b煤squeda especificado.
  • Pase a ver: Esta es la ubicaci贸n (o los datos) donde se debe buscar el valor. Puede ser un comentario (xlComments), una f贸rmula (xlFormulas) o un valor (xlValues). El valor predeterminado para este argumento es xlFormulas. Adem谩s, este argumento es el mismo que la opci贸n Buscar de la ventana 芦encontrar y reemplazar鈥 de Excel.
  • Mirar: Este argumento decide si hacer coincidir todo el contenido de la celda (coincidencia exacta) o una parte del contenido de la celda (coincidencia parcial). Las constantes son xlWhole y xlPart para coincidencias exactas y parciales, respectivamente. El valor predeterminado para este argumento es xlPart.
  • Orden de b煤squeda: Este argumento sugiere el orden de b煤squeda. Puede especificar si la b煤squeda ser谩 en filas (xlByRows) o columnas (xlByColumns). El valor predeterminado para este argumento es xlByRows. Adem谩s, este argumento es el mismo que la opci贸n Buscar de la ventana 芦encontrar y reemplazar鈥 de Excel.
  • Direcci贸n de b煤squeda: Indica la direcci贸n en la que se realizar谩 la b煤squeda. Puede buscar hacia abajo o hacia la siguiente celda con la constante xlNext. Alternativamente, puede buscar hacia atr谩s (hacia arriba) o en la celda anterior con la constante xlPrevious. El valor predeterminado para este argumento es xlNext.
  • Caso de coincidencia: Este argumento decide si la b煤squeda debe distinguir entre may煤sculas y min煤sculas o no. Si la b煤squeda distingue entre may煤sculas y min煤sculas, este argumento se especifica como verdadero (VERDADERO), de lo contrario, es falso (FALSO). El valor predeterminado para este argumento es Falso.
  • MatchByte: Este argumento debe usarse si alguien ha instalado o seleccionado la compatibilidad con idiomas de doble byte. Debe especificarse como verdadero si los caracteres de doble byte deben coincidir con caracteres de doble byte. Debe especificarse como falso si los caracteres de doble byte deben coincidir con sus equivalentes de un solo byte.
  • Formato de b煤squeda: Indica si el valor a buscar debe estar en un formato espec铆fico (como negrita o cursiva) o no. Si el valor de b煤squeda debe seguir una t茅cnica de formato, este argumento se especifica como verdadero, de lo contrario, falso. El valor predeterminado de este argumento es falso (FALSO).

solo el argumento qu茅 es necesario. Los otros argumentos son opcionales.

La funci贸n ENCONTRAR devuelve uno de los siguientes resultados:

  • Si se encuentra una coincidencia, la funci贸n devuelve la primera celda donde se encuentra el valor.
  • Si no se encuentra una coincidencia, la funci贸n no devuelve nada. Esto se debe a que el objeto de la funci贸n se establece en nada.

Alternativamente, si no se encuentra una coincidencia, un mensaje personalizado especificado a trav茅s del Funci贸n de cuadro de mensaje se puede devolver (consulte los ejemplos de c贸digo a continuaci贸n).

Nota 1: La b煤squeda comienza despu茅s de la celda especificada en el argumento. Despu茅s y contin煤a hasta la 煤ltima celda del rango de b煤squeda. Si el valor no se encuentra hasta esta 煤ltima celda, la b煤squeda comienza de nuevo desde la primera celda del rango de b煤squeda hasta la celda especificada en el argumento. Despu茅s馃嚙馃嚪

Por lo tanto, la celda especificada en el argumento Despu茅s se busca al final del proceso de b煤squeda. Para m谩s detalles sobre el uso del argumento Despu茅svea el segundo ejemplo en este art铆culo.

Nota 2: Cada vez que se utiliza la funci贸n FIND de VBA, el pase a ver馃嚙馃嚪 Mirar馃嚙馃嚪 Orden de b煤squeda y MatchByte se guardan Por lo tanto, si se omiten estos valores la pr贸xima vez que se utilice la funci贸n, Excel utilizar谩 los valores guardados anteriormente. Por lo tanto, se recomienda declarar expl铆citamente los argumentos proporcionados siempre que la b煤squeda se realice mediante la funci贸n FIND de VBA.

驴C贸mo usar la funci贸n ENCONTRAR en Excel VBA?

Para que pueda comprender el uso de la funci贸n FIND en VBA, hemos separado algunos ejemplos pr谩cticos a continuaci贸n.

Ejemplo 1: Selecci贸n de la celda con la primera aparici贸n del valor buscado

En este primer ejemplo, suponga que tiene una lista que contiene algunos nombres como se muestra en la imagen a continuaci贸n y desea buscar y seleccionar la celda que contiene el nombre. pedro馃嚙馃嚪

A partir de ah铆, sigue estos pasos:

1. Accede a la gu铆a Desarrollador 馃嚙馃嚪 b谩sico visual馃嚙馃嚪 (Si no tiene habilitada la pesta帽a Desarrollador en su Excel, Chequea aqu铆 el paso a paso).

gu铆a para desarrolladores

dos. En la pantalla de VBA, seleccione la hoja de trabajo deseada del men煤 de la izquierda. En este ejemplo, seleccionaremos el Hoja de trabajo1 que es la hoja de trabajo que contiene la lista de nombres.

3. Despu茅s de seleccionar la hoja de trabajo deseada, en el 谩rea a la derecha, ingrese el c贸digo a continuaci贸n:

Seleccione la celda con la primera aparici贸n del valor buscado

Sub LocalizarNome()
Range("A1:A10").Find(What:="Pedro").Select
End Sub
  • Observe en el c贸digo anterior que mencionamos el rango que estamos buscando (A1:A10馃嚙馃嚪
  • Despu茅s de mencionar el rango, coloque un punto (.) y escriba ENCONTRAR馃嚙馃嚪
  • Nuestro primer argumento es lo que estamos buscando. Para resaltar el argumento, podemos pasar el argumento que:=esto ser谩 煤til para identificar a qu茅 par谩metro nos referimos.
  • La parte final es despu茅s de encontrar la palabra lo que queremos hacer. Necesitamos seleccionar la palabra, as铆 que pase el argumento como .Seleccione馃嚙馃嚪
  • Luego ejecuta este c贸digo usando la tecla F5 o manualmente como se muestra en la imagen a continuaci贸n para seleccionar la primera celda que contiene el nombre pedro馃嚙馃嚪

localizar en VBA

Ejemplo 2: Seleccionar la celda con la segunda ocurrencia del valor buscado

En este segundo ejemplo, tenga en cuenta que la siguiente imagen contiene algunos nombres en el rango A1:A10. Tenga en cuenta que el nombre 芦pedro鈥 aparece dos veces en la columna A.

Seleccione la celda con la segunda ocurrencia

En este caso, queremos buscar y seleccionar el segunda ocurrencia del nombre 鈥淧eter鈥 en la columna A (es decir, celda A7). Para ello utilizaremos el siguiente c贸digo:

ENCONTRAR segunda aparici贸n de VBA

Sub LocalizarNome()
Range("A1:A10").Find(What:="Pedro", After:=Range("A2")).Select
End Sub

Observe en el c贸digo anterior que la b煤squeda comienza despu茅s de la celda A2 y contin煤a hasta la 煤ltima celda de la columna A. Esto se debe a que el rango de b煤squeda se especific贸 como columna A (A1:A10).

As铆, como la b煤squeda comienza en la celda A3, el valor 鈥pedro鈥 se encuentra en la celda A7 da 芦Hoja de c谩lculo2馃嚙馃嚪 Por lo tanto, la celda A7 ser谩 seleccionada por la funci贸n FIND al ejecutar el c贸digo.

Si el nombre 芦pedro鈥 no se hab铆a encontrado en la celda A3 hasta la 煤ltima celda de la columna A, la b煤squeda comenzar铆a nuevamente en la celda A1 y terminar铆a en la celda A2 esta vez. Por lo tanto, la celda especificada en el argumento 鈥Despu茅s鈥 se busca justo al final del proceso de b煤squeda.

Ejemplo 3: encontrar texto especificando algunos de sus caracteres

Para buscar texto especificando solo una parte del mismo, ingrese el argumento Mirar como xlParte u omitir este argumento. De forma predeterminada, la funci贸n FIND hace coincidir los caracteres del valor de b煤squeda con la cadena completa. Luego devuelve la celda que contiene toda esta cadena.

Mira el ejemplo a continuaci贸n:

Sub LocalizarNome()
Range("A1:A10").Find(What:="Ped", LookAt:=xlPart).Select
End Sub

Este c贸digo busca los caracteres 芦Ped鈥 en el rango A1:A25 de 鈥淗oja3鈥. Se devuelve la celda que contiene el valor, que se denomina correspondencia parcial馃嚙馃嚪 Por lo tanto, independientemente de si los caracteres del valor de b煤squeda se colocan al principio, en el medio o al final de la cadena, Excel VBA devuelve una coincidencia.

Observaci贸n: el constante xlParte se puede omitir del c贸digo porque es el valor predeterminado de la funci贸n FIND. Pero si se especifica este argumento, aseg煤rese de que no est茅 entre comillas dobles.

Ejemplo 4: Encontrar texto dentro de un comentario

Tambi茅n puede usar la funci贸n FIND de VBA para buscar texto dentro de un comentario de celda en Excel.

Para una mejor comprensi贸n, mire el ejemplo a continuaci贸n donde tenemos una hoja de trabajo que contiene tres celdas con comentarios (indicados por los tri谩ngulos rojos). A partir de esto queremos encontrar el texto 鈥Comision pagada鈥 ubicado dentro de uno de los comentarios. En este caso, utilizaremos el siguiente c贸digo:

Sub LocalizarComentario()
Range("A1:B10").Find(What:="Comiss茫o Paga", LookIn:=xlComments).Select
End Sub

Buscar texto dentro del comentario

Como resultado, Excel solo seleccionar谩 la celda que contiene el comentario cuyo texto se especific贸 en nuestro c贸digo.

Ejemplo 5: Manejo de errores en la funci贸n FIND en VBA

En caso de que el texto que estamos buscando no se encuentre dentro del rango dado, VBA devolver谩 un error como se muestra a continuaci贸n:

error 91

Para evitar este error, podemos usar un c贸digo como se muestra a continuaci贸n:

Sub LocalizarNome()
Dim Resultado As Variant

On Error Resume Next
Range("A1:A10").Find(What:="Cristina").Select
On Error GoTo 0

Resultado = ActiveCell.Value

If Resultado = "" Then
MsgBox "O valor que voc锚 est谩 procurando n茫o est谩 dispon铆vel no intervalo fornecido!"
Exit Sub
End If

End Sub

Observe en el c贸digo anterior que si VBA encuentra el valor, mostrar谩 el valor encontrado o, de lo contrario, mostrar谩 el mensaje como 芦El valor que est谩 buscando no est谩 disponible en el rango dado馃嚙馃嚪

Para obtener m谩s sugerencias sobre c贸mo solucionar errores de VBA, consulte el art铆culo: Errores de Excel VBA: 隆todo lo que necesita saber!

Detalles para recordar

  • La funci贸n ENCONTRAR es parte de la propiedad RANGO y debe usar ENCONTRAR despu茅s de seleccionar solo el rango.
  • En la funci贸n FIND, se requiere el primer argumento (qu茅), adem谩s todo lo dem谩s es opcional.
  • Si encuentra el valor despu茅s de una celda espec铆fica, puede mencionar la celda en el par谩metro Despu茅s de la sintaxis de b煤squeda.

Descargue la hoja de c谩lculo aqu铆 que contiene los ejemplos presentados en este tutorial.

Consulte tambi茅n los siguientes consejos de Excel:

Entonces, 驴qu茅 piensas de la funci贸n FIND en VBA? Si tienes alguna duda, deja tu comentario a continuaci贸n. 隆Consulte tambi茅n m谩s consejos de Excel y VBA en nuestro sitio web!

Tommy Banks
Estaremos encantados de escuchar lo que piensas

Deje una respuesta

TecnoBreak | Ofertas y Reviews
Logo
Enable registration in settings - general
Shopping cart