Situación: hicimos una macro que debe encontrar el valor que le corresponde a otro dado, según una tabla. Dentro de la hoja la podemos hacer con la función BUSCARV, pero ¿cómo ponemos esa función dentro del código de la macro?
En principio, cualquier función de Excel se puede usar dentro de una macro siempre y cuando:
- Escribimos su nombre en inglés.
- Anteponemos la palabra clave WorksheetFunction.
En el caso de la función BUSCARV, el nombre correspondiente en inglés es VLookup. Entonces, supongamos en el rango [A2:B6] una tabla de dos columnas, Región y Valor. Si en la celda [A8] tenemos escrita una de las regiones, obtenemos el valor que le corresponde con la función =BUSCARV(A8;A2:B6;2;FALSO). Hay cuatro argumentos dentro de los paréntesis:
- El primero es la región cuyo valor se quiere conocer.
- El segundo es la tabla que relaciona región y valor.
- El tercero indica que lo que estamos buscando, el valor, está en la segunda columna de la tabla.
- El cuarto indica que la tabla no está ordenada.
Dentro de una macro, este resultado se obtiene con la siguiente instrucción:
WorksheetFunction.VLookup([A8], Range(“A2:B6”), 2, False).
Para conocer el nombre de la función en inglés, podemos marcar la opción [Lista de miembros automática] dentro de [Herramientas/Opciones/Editor]. Esto despliega una lista de nombres de función al escribir el punto luego de WorksheetFunction.