Excel: BUSCARV en macros

Cómo usar esta función dentro del código de la macro.
DOM, 26 / MAY / 2013

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 correspon­diente 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 regio­nes, obtenemos el valor que le corresponde con la función =BUSCARV(A8;A2:B6;2;FALSO). Hay cuatro argumentos den­tro 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 colum­na 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.

 

La función de la celda [A9] encuentra el valor que le corresponde a la región escrita en [A8] según la tabla. El último argumento (el valor lógico FALSO) indica que la tabla no está ordenada.

Esta macro usa la función VLookup (equivalente a BUSCARV) para encontrar el valor que le corresponde a la región escrita en [A8] según la tabla de [A2:B6].

Al escribir el punto luego de WorksheetFunction, aparece una lista de las funciones de Excel que podemos usar dentro de la macro.

Comentarios
¡Comparte esta noticia!

Últimos lanzamientos Ver más

6 Comments

  1. carlos dice:

    para buscarla en otra hoja

  2. Cris Tian dice:

    Si tengo en “x”
    varias actividades, en “y” una lista de personas con las cuales
    realizare estas actividades, y en las intersecciones las fechas a realizarse.
    Como puedo crear un calendario que tenga en “x” las fechas, “y” las actividades
    y en las intersecciones los nombres de las personas, usando macros. Mi mail es [email protected]

  3. Guest dice:

    Si mi rango esta del F1:G34, pero mi región esta en A1 hasta A143224 [A1:A143224] y quiero colocar mi resultado en B [B1:B143324] cómo modifico el macro detal manera que la busqueda en la región A1 me coloque el resultado en B1 y la región A2 en B2 …?

  4. Claudio H. Sánchez dice:

    Perdón por responder tan tarde. ¿Tenés indicado Option Explicit al comienzo de la macro?

  5. Cristina dice:

    Excel 2007 me dice que no puede funcionar por que no se ha definido la variable de rango.

  6. Steven dice:

    Gracias excelente

Leave a Reply