Función de búsqueda de Excel VBA

En Excel, hemos usado VLookup muchas veces. Está allí en la función Insertar, que se utiliza para buscar o asignar cualquier tipo de valores que queramos. Del mismo modo, en VBA tenemos la aplicación de búsqueda, que funciona igual que Excel Vlookup. VBA Lookup tiene una estructura de datos flexible, ya que se puede utilizar para asignar cualquier tipo de valor desde cualquier tipo de matriz de tabla. Esto significa que si aplicamos Excel Vlookup, no podremos asignar los datos de la columna derecha con los datos de la columna izquierda en una sintaxis. Mientras que en VBA Lookup, no existe una estructura adecuada de mapeo. Solo necesitamos seguir la sintaxis de VBA Lookup. Si la sintaxis se satisface y se enmarca correctamente, podemos obtener los valores del lado derecho o izquierdo de la tabla.

Sintaxis de la función de búsqueda VBA:

Dónde,

  • Arg1 = Valor que queremos buscar.
  • Arg2 = Rango de las columnas o la tabla desde donde queremos buscar.
  • Arg3 = Resultado como booleano o vectorial.

¿Cómo usar la función de búsqueda en Excel VBA?

Aprenderemos cómo usar la función de búsqueda en Excel usando el código VBA.

Puede descargar esta plantilla de Excel de búsqueda de VBA aquí - Plantilla de Excel de búsqueda de VBA

Búsqueda de VBA - Ejemplo # 1

Hay muchas formas de escribir el código de búsqueda de VBA. En este ejemplo, veremos una manera simple de escribir la Búsqueda de VBA. Para esto, tenemos un conjunto de datos como se muestra a continuación. Esta tabla tiene el número de carreras y la velocidad promedio de los corredores. Ahora usaremos estos datos para aplicar la búsqueda de VBA en la tabla a continuación con los encabezados azules en A8 a B8. Para esto, siga los pasos a continuación:

Paso 1: abra un módulo desde la pestaña del menú Insertar como se muestra a continuación.

Paso 2: escriba el subprocedimiento para el trabajo realizado en ese módulo. Aquí hemos elegido el nombre como VBA Lookup.

Código:

 Sub VBA_Lookup1 () End Sub 

Paso 3: Seleccione la celda de salida donde necesitamos ver el valor de búsqueda. Aquí esa celda es B9 donde buscaremos con el valor relativo al nombre "Aniket", que es nuestro valor de búsqueda.

Código:

 Sub VBA_Lookup1 () Rango ("B9"). Valor Fin Sub 

Paso 4: Ahora usaremos la función de hoja de trabajo y seleccionaremos la función de búsqueda incorporada en la lista como se muestra a continuación.

Código:

 Sub VBA_Lookup1 () Rango ("B9"). Valor = WorksheetFunction.Lookup End Sub 

Paso 5: Una vez que seleccionamos la función de búsqueda, veremos Arg1, Arg2 y Arg3 en su sintaxis. Para eso, primero colocaremos nuestro rango de valores de búsqueda, que es la celda A9 en lugar de Arg1.

Código:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, End Sub 

Paso 6: Ahora para Arg2, seleccione el rango de búsqueda que es de la celda A2: A5.

Código:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), End Sub 

Paso 7: Por último, seleccione los rangos de valores de búsqueda que van de B2 a B5 en lugar de Arg3.

Código:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), Range ("B2: B5")) End Sub 

Paso 8: Ejecute el código presionando la tecla F5 o haciendo clic en el botón Reproducir ubicado debajo de la cinta de menú. Veremos, según la búsqueda, el número de carreras realizadas con el nombre de "Aniket" es 7.

Búsqueda de VBA - Ejemplo # 2

Hay otra forma de aplicar una función de búsqueda en Excel VBA. Para esto, utilizaremos los mismos datos que hemos visto en el ejemplo-1. Para esto, siga los pasos a continuación:

Paso 1: escriba el subprocedimiento para la búsqueda de VBA, como se muestra a continuación.

Código:

 Sub VBA_Lookup2 () End Sub 

Paso 2: defina una variable como Cadena que se utilizará para asignar la columna Nombre.

Código:

 Sub VBA_Lookup2 () Dim Dim como String End Sub 

Paso 3: en la variable Nombre definido, aplicaremos la aplicación Vlookup como se muestra a continuación.

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup (End Sub 

Paso 4: Digamos que nuestro valor de búsqueda se llama "Ashwani" de la tabla.

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup ("Ashwani", End Sub 

Paso 5: Y el rango es de A1 a C6 de Sheet1.

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), End Sub 

Paso 6: Ahora, si queremos ver la velocidad promedio del piloto "Ashwani" aquí, necesitamos mapear la celda en la sintaxis de Búsqueda que está en el 3er lugar.

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) End Sub 

Paso 7: Ahora para ver la velocidad promedio del piloto "Ashwani", podemos usar MsgBox y Debug Print. Pero usar Debug Print es mucho mejor que MsgBox. Asigne la impresión de depuración con el nombre de la variable definida.

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

Paso 8: Ahora abra la ventana Inmediato que está allí en la pestaña del menú Ver para ver el resultado.

Paso 9: compila el código y ejecútalo. Ya veremos, Lookup ha cartografiado con la velocidad de Ashwani y lo ha llevado a la ventana Inmediato como 86 .

Código:

 Sub VBA_Lookup2 () Dim Dim As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

Búsqueda de VBA - Ejemplo # 3

Para usar la función de búsqueda en Excel VBA, siga los pasos a continuación:

Paso 1: escriba el subprocedimiento para la búsqueda de VBA, como se muestra a continuación.

Código:

 Sub VBA_Lookup3 () End Sub 

Paso 2: Declare una variable para Nombre como Cadena como se muestra a continuación.

Código:

 Sub VBA_Lookup3 () Dim Dim como String End Sub 

Paso 3: Ahora asigne el nombre que desea buscar a la variable Nombre definido como se muestra a continuación.

Código:

 Sub VBA_Lookup3 () Dim Dim As String Name = "Deepinder" End Sub 

Paso 4: ahora usa cualquier palabra para definir y usa la búsqueda, digamos LUp . Y en eso use la función de hoja de trabajo con Vlookup como se muestra a continuación.

Código:

 Sub VBA_Lookup3 () Dim Dim As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "La velocidad promedio es:" & LUp End Sub 

Paso 5: Ahora usa la misma sintaxis de Vlookup que usamos en Excel. En Arg1 ponga la variable Nombre, luego seleccione la matriz de rango y busque el valor que queremos obtener. Aquí esa columna es 3 como se muestra a continuación.

Código:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "La velocidad promedio es:" & LUp End Sub 

Paso 6: Ahora usa MsgBox para ver el resultado.

Código:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "La velocidad promedio es:" & LUp End Sub 

Paso 7: compila y ejecuta el código. Veremos que, para el nombre "Deepinder", la velocidad promedio es 88. Mientras que el mismo valor se da para el nombre Deepinder en la tabla.

Código:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "La velocidad promedio es:" & LUp End Sub 

Ventajas de la función de búsqueda de Excel VBA

  • Es tan fácil de usar e implementar como aplicar fórmulas regulares de Excel Vlookup en Excel.
  • Podemos usar cualquier tipo de rango y matriz en la búsqueda de VBA.
  • Hay muy pocas o ninguna restricción al aplicar la Búsqueda de VBA.

Cosas para recordar

  • Podemos usar Lookup en lugar de Vlookup en cualquier situación.
  • El rango para el vector de búsqueda y el vector de resultados debe ser el mismo.
  • Una vez terminada la aplicación, guarde el archivo como formato de Macro Enable para retener el código.
  • No hay un requisito obligatorio para colocar la columna de resultados cada vez que esté a la derecha del valor de búsqueda.

Artículos recomendados

Esta es una guía de la función de búsqueda de VBA. Aquí discutimos cómo usar la función de búsqueda en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Colección VBA (Ejemplos)
  2. Declaraciones VBA IF | Plantillas Excel
  3. ¿Cómo utilizar la función de clasificación de Excel VBA?
  4. VBA While Loop (Ejemplos con plantilla de Excel)
  5. VBA Environ

Categoría: