Función Vlookup de Excel en Visual Basic
Joshua es un estudiante de posgrado en la USF. Tiene intereses en tecnología empresarial, análisis, finanzas y lean six sigma.
Por lo general, cuando Vlookup se ejecuta como una macro, hay muchas complejidades involucradas en la automatización de un proceso. En este tutorial, solo cubro los conceptos básicos de cómo escribir una función en VBA (Visual Basic Applications) para ejecutar una macro en Excel. Aquí se supone que tiene algún conocimiento de cómo funciona Vlookup.
Con los datos anteriores, me gustaría devolver el empleado de la celda F4 que hace referencia al número de empleado que aparece en la celda E4. Esta tarea resulta ser simple cuando usa Vlookup como una función de hoja de trabajo. Cuando ejecuta la función en VBA, hay algunos pasos adicionales para realizar la tarea.
Para comenzar, vaya a la pestaña Revisar y haga clic en el botón Revisión de macros.
Botón de vista de macros
El botón de vista de macros ubicado debajo de la pestaña de vista se usa para mostrar macros existentes, editar macros, crear macros y eliminar macros.
Luego cree un nombre para la macro y haga clic en el botón más. En un sistema Windows, será necesario hacer clic en el botón Crear.
Nombrar y crear macro
Aparecerá un nuevo módulo de VBA como el siguiente. Cada macro debe comenzar con Sub seguida por el nombre de la macro que termina con End Sub.
módulo VBA
Cuando use VBA en una computadora Mac, tenga cuidado. Aunque su formato puede parecer perfecto, encontrará que puede necesitar manipular su código para que funcione en algunos casos.
En el código de ejemplo que creé a continuación, la primera sección identificada es el rango en el que quiero que aparezca el resultado. Establecí este valor como empleado, pero cualquier variable servirá. Tenga en cuenta la sintaxis utilizada para identificar una celda. La celda necesita que se agregue un identificador para que el back-end de Excel sepa qué celda o rango de celdas es.
Establecer empleado = rango («F4»)
Ejemplo de código VBA 1
Este es el ejemplo más simple creado para implementar un Vlookup en VBA para imitar lo que logra la función de hoja de cálculo.
Desplácese hasta Continuar
En la siguiente línea de código, queremos establecer que empleado (o celda F4) es un valor y será igual a lo que devuelva la función. Sin «.Valor» después de la variable del empleado, la macro se ejecutará sin resultado.
Empleado.Valor =
Luego, para la sección de función, «Application.WorksheetFunction». debe seleccionarse antes de usar las funciones de Excel disponibles en VBA. A continuación, los argumentos de la función son los mismos que cuando se usa Vlookup en una fórmula de hoja de cálculo, excepto por el formato de las ubicaciones de las celdas en VBA.
Application.WorksheetFunction.VlookupRange(«E4»), Range(«B3:C7», 2, True)
Vea los argumentos debajo de la función Vlookup de la hoja de cálculo en la ilustración.
Argumentos de la fórmula Vlookup
Los argumentos de función utilizados en la versión VBA de Vlookup imitan los argumentos utilizados en la versión de hoja de cálculo.
Ejecutar esta función desde la opción del visor de macros permitirá que la macro se ejecute y llene la celda F4 del ejemplo con el resultado.
Resultados
A continuación se muestra otro ejemplo simple de VLookup VBA con algunas diferencias. Primero, en lugar de usar un rango específico de celdas, usé rangos de columnas para especificar la matriz para buscar. Más importante aún, configuré variables para representar las celdas para el valor de búsqueda y la matriz, y usé esas variables directamente en los argumentos de la función.
Ejemplo de código VBA 2
Si bien el uso de variables en este segundo ejemplo puede parecer mucho más complicado para algunas personas, será una realidad una vez que comience a usar más el código VBA.
Referencias
Microsoft. (nd) Método .WorksheetFunction.VLookup (Excel). Descargado el 30 de julio de 2022 por
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.vlookup
Este contenido es preciso y verdadero al leal saber y entender del autor y no pretende reemplazar el asesoramiento formal e individualizado de un profesional calificado.
© 2022 Josué Crowder