Función de búsqueda de Excel VBA
Lookup es la función que nos ayuda a obtener los datos de la tabla principal en función de un único valor de búsqueda. La función VBA BÚSQUEDA no requiere una estructura de datos como esa, para la función BÚSQUEDA no importa si la columna de resultados está a la derecha o izquierda del valor de búsqueda, aún así, puede recuperar los datos cómodamente.
Esto funciona de manera similar a la función BUSCARV, pero lo que es más importante, es flexible en una estructura de datos. Cuando decimos flexible en la estructura de datos, significa VLOOKUP necesita todos los valores a la derecha de un valor de búsqueda en la tabla principal, y cualquier cosa que quede en el valor de búsqueda VLOOKUP no puede encontrarlo.

Sintaxis
Si ya buscó la fórmula BUSCAR en el editor de VBA, estoy seguro de que se ha vuelto loco porque hay una fórmula llamada BUSCAR en VBA.
La razón por la que no está disponible de forma predeterminada porque LOOKUP no es una función de VBA, es una función de hoja de trabajo. Entonces, para usar la función BUSCAR, primero debemos hacer uso de la función de la hoja de trabajo en la clase VBA.

- Arg 1 significa valor de búsqueda
- Arg 2 es nuestro vector de búsqueda, es decir, rango de nuestra columna de valor de búsqueda
- Arg 3 es nuestro vector de resultado.
¿Cómo utilizar la función de búsqueda de VBA? (Ejemplos)
Ejemplo 1
Tenemos los siguientes datos de los que queremos obtener el precio promedio de un nombre de producto en particular usando la función de búsqueda en VBA Excel.

Para obtener el precio medio de los accesorios móviles, utilice el siguiente código.
Paso 1: Inicie el subprocedimiento en VBA.
Código:
Sub Lookup_Example1 () End Sub

Paso 2: necesito el resultado en la celda F3. Entonces mi código es Rango ("F3"). Valor =.
Código:
Sub Lookup_Example1 () Rango ("F3"). Valor End Sub

Paso 3: Como dije, no pudimos acceder de inmediato a la función BUSCAR. Entonces, primero, use la clase de función de hoja de trabajo.

Paso 4: En el momento en que aplicamos la clase de función de hoja de trabajo, podemos ver todas las fórmulas disponibles con esta clase en VBA, así que seleccione BUSCAR en esta lista.

Paso 5: Con las funciones de la hoja de trabajo en VBA, no vemos argumentos claros de la fórmula. Aquí Arg 1 significa valor de búsqueda. Nuestro valor de búsqueda está en la celda E3, así que escriba el código como Rango (“E3”). Valor.
Código:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value End Sub

Paso 6: Arg 2 es nuestro vector de búsqueda, es decir, el rango de nuestra columna de valor de búsqueda. En este ejemplo, nuestro rango de vectores de búsqueda es de B3 a B10.
Código:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), End Sub

Paso 7: Arg 3 es nuestro vector de resultado. Necesitamos el resultado de la columna Precio promedio, por lo que el vector de resultado es del rango C3 al C10.
Código:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), Range ("C3: C10")) End Sub

Ok, hemos terminado con la codificación VBA.
Ejecutemos el código y obtendremos el resultado en la celda F3.

De esta forma, podemos usar la función BUSCAR en la clase de función de la hoja de trabajo para obtener los datos del valor de búsqueda proporcionado.
Ejemplo # 2
Usar variables para la función BUSCAR
Usando variables también podemos llegar a resultados. A continuación se muestra el código de ejemplo de la función de búsqueda con variables.
Código:
Sub Lookup_Example2() Dim ResultCell As Range Dim LookupValueCell As Range Dim LookupVector As Range Dim ResultVector As Range Set ResultCell = Range("F3") Set LookupValueCell = Range("E3") Set LookupVector = Range("B3:B10") Set ResultVector = Range("C3:C10") ResultCell = WorksheetFunction.Lookup(LookupValueCell, LookupVector, ResultVector) End Sub

Even though it looks lengthy, it will give good exposure to variables in VBA. Instead of supplying all the values to the formula directly, we have declared variables and assigned set of ranges and values to them.

Declaring variables and setting the reference to those variables is always a good practice in any coding language.
Things to Remember
- LOOKUP is an alternative function to VLOOKUP.
- BUSCAR no requiere necesariamente que la columna de resultados esté a la derecha del valor de búsqueda.
- La longitud del rango tanto del vector de búsqueda como del vector de resultado debe ser la misma.
- Más importante aún, necesitamos proporcionar un número de índice de columna, que es necesario para la función BUSCARV.