Tabla de contenido
Para buscar o ver algunos valores o elementos específicos, MS Excel ofrece varias funciones. VLOOKUP es una de ellas. Nos ayuda a buscar los datos deseados de cualquier conjunto de datos. Nos permite mencionar si queremos buscar una coincidencia exacta o aproximada. Además de utilizar esta función en la fórmula de Excel, también podemos utilizarla en código VBA. En este artículo, veremos cómo podemos utilizar esta función Función VLOOKUP en VBA.
Descargar el cuaderno de prácticas
VLOOKUP en VBA.xlsm4 formas de utilizar VLOOKUP en VBA
1. Buscar Datos Manualmente Usando VLOOKUP en VBA
Tenemos un conjunto de datos de información de empleados con su ID, Nombre, Departamento, Fecha de incorporación y Salario. Ahora nuestra tarea consiste en averiguar manualmente la información de los empleados utilizando su ID. En esta sección, sólo averiguaremos el salario de los empleados utilizando su ID.
Primer paso: Seleccione Visual Basic en Desarrollador (Acceso directo Alt + F11 )
Segundo paso: Entonces vendrá una ventana. Selecciona Módulo opción bajo Inserte botón
Tercer paso: Ahora escriba el siguiente código en la consola VBA y pulse la tecla Ejecutar (Acceso directo F5 )
Código:
Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID:" & Employee_id & " Salary " & "$" & salary End Sub
Paso 4: Ahora aparecerá un mensaje emergente que mostrará la información
Más información: VLOOKUP para Buscar Texto en Excel (4 Maneras Fáciles)
2. Buscar Datos con Entrada Usando VLOOKUP en VBA
Ahora vamos a ver como podemos buscar o extraer datos de tablas o rangos con input. Como en la imagen, vamos a averiguar el nombre del id introducido de la tabla de información del empleado.
Paso 1: Primero abra la consola VBA siguiendo el mismo Paso 1 a Paso 2
Segundo paso: Ahora introduce el siguiente código en la ventana VBA
Código:
Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub
Tercer paso: Ahora Introduzca cualquier ID en la celda D13 y ejecuta el código
Paso 4: En Nombre que se guarda contra el ID se mostrará
Más información: 10 Mejores Prácticas con VLOOKUP en Excel
Lecturas similares
- VLOOKUP No Funciona (8 Razones & Soluciones)
- Función INDEX MATCH vs VLOOKUP (9 Ejemplos)
- Utilizar VLOOKUP con Múltiples Criterios en Excel (6 Métodos + Alternativas)
- Excel VLOOKUP para encontrar el último valor de la columna (con alternativas)
- Excel VLOOKUP para Devolver Múltiples Valores Verticalmente
3. Buscar Información con Cuadro de Entrada Usando VLOOKUP en VBA
Veamos cómo podemos buscar datos utilizando el cuadro de entrada de VBA. Para buscar, tenemos que utilizar la función VLOOKUP Una vez más, el conjunto de datos será el mismo, pero el enfoque de búsqueda será diferente. En este caso, nuestra tarea consiste en averiguar el salario del empleado introduciendo el ID y el Departamento.
Primer paso: Primero abra la ventana VBA siguiendo el mismo Paso 1 a Paso 2
Segundo paso: Ahora introduce el siguiente código en la consola VBA y Ejecutar it
Código:
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub
Tercer paso: Esto imprimirá una cadena combinada con ID y Departamento en la primera columna
Paso 4: Ahora de nuevo vaya a la consola VBA e introduzca el código completo y ejecute de nuevo
Código:
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Introduzca el ID del empleado") department = InputBox("Introduzca el departamento del empleado") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("El salario del empleado es $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Los datos del empleado no están presentes") End If End Sub
Código Explicación
- En primer lugar, Celdas(i, "A").Valor = Celdas(i, "B").Valor & "_" & Celdas(i, "D").Valor usando este código estamos almacenando los valores concatenados de ID y Departamento en la columna A.
- lookup_val = ID & "_" & departamento esto define que el valor de búsqueda será ID y departamento.
- salario = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) aquí estamos almacenando el salario del empleado emparejado en una variable llamada salario
- Si Número Err = 1004 Entonces se trata de la comprobación de la condición. Estamos comprobando si el número de error es 1004 o no. En Excel VBA 1004 código significa que el valor buscado no se encuentra, borrado o eliminado.
Paso 5: Ahora aparecerá una ventana emergente como la de esta imagen. Entrar ID y Departamento secuencialmente
Paso 6: Tras pulsar el botón Ok se mostrará el resultado final
Paso 7: Si introduce un ID o Departamento, se mostrará el siguiente mensaje
Más información: Cómo hacer VLOOKUP con Múltiples Condiciones en Excel (2 Métodos)
4. Buscar información con un botón utilizando VLOOKUP en VBA
Ahora veremos cómo podemos averiguar información con la ayuda de un botón en lugar de ejecutar el código manualmente. De nuevo, el conjunto de datos será el mismo que el anterior.
Primer paso: Seleccione primero el Inserte en la opción Desarrollador tab
Segundo paso: A continuación, seleccione la opción Botón opción de Inserte
Tercer paso: Coloque el botón según sus necesidades e indique el nombre del botón
Paso 4: Ahora haga clic con el botón derecho del ratón en el botón y seleccione Asignar macro
Paso 5: Ahora cree una nueva macro y nómbrela vlookup_function_4
Paso 6: Escribe el siguiente código en la consola VBA y Ejecutar el código
Código:
Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Hojas("Hoja4").Range("D15") Set Table_Range = Hojas("Hoja4").Range("B4:F11") Set LookupValue = Hojas("Hoja4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub
Paso 6: Ahora introduce cualquier ID y pulsa el botón
Más información: Uso de VBA VLOOKUP para encontrar valores de otra hoja de cálculo en Excel
Cosas para recordar
Errores comunes | Cuando muestran |
---|---|
1004 error | Cuando el código VBA vlookup no puede encontrar el lookup_value, dará un error 1004. |
Función VLOOKUP no se encuentra en VBA | La función Vlookup se puede llamar en Excel VBA utilizando WorksheetFunction. |
Tratamiento de errores | El error en la función vlookup puede controlarse utilizando un ir a si devuelve un error. |
Conclusión
Estas son algunas formas de utilizar el VLOOKUP en VBA en Excel. He mostrado todos los métodos con sus respectivos ejemplos, pero puede haber muchas otras iteraciones. También he discutido los fundamentos de las funciones utilizadas. Si usted tiene cualquier otro método para lograr esto, entonces no dude en compartirlo con nosotros.