Macro BuscarV devuelve varias columnas

La presente es para solicitar una ayuda con la creación de una macro en la cual pueda devolver respuesta de varias columnas.

Ejemplo...

Tengo una tabla de referencias de 20 columnas, con el buscarV solo me devolverás la respuesta de 1 columna, pero yo deseo que me de la opción de devolverme las columnas que quiero indicando en la macro para no estar.

buscarv(A2;tablabase;1;0)

buscarv(A2;tablabase;2;0)

buscarv(A2;tablabase;3;0)

buscarv(A2;tablabase;4;0)

buscarv(A2;tablabase;5;0)

buscarv(A2;tablabase;6;0)

buscarv(A2;tablabase;7;0)

buscarv(A2;tablabase;8;0)

Ya que siempre es una rutina diaria y quiero que al ejecutarla ya me envie los resultados en las columnas siguientes.

Espero me puedan ayudar para crear una macro o una UDF

2 Respuestas

Respuesta
1
Respuesta
1

buscarv(A2;tablabase;1;0)

Tu primer fórmula tiene la columna 1, la columna 1 regresa el mismo valor que estás buscando, ¿realmente quieres eso?


Puedes poner la siguiente fórmula en B2 y copiar hacia la derecha. En automático incrementa el número de columna (1, 2, 3 ...)

=BUSCARV($A2;tablabase;COLUMNAS($B$1:B1);0)

Nota: si no quieres la columna 1 como resultado, utiliza la siguiente y copia hacia la derecha.

=BUSCARV($A2;tablabase;COLUMNAS($B$1:C1);0)

Si quieres el código:

Sub macro1()
  With Range("B2:U" & Range("A" & Rows.Count).End(3).Row)
    .Formula = "=VLOOKUP($A2,tablabase,COLUMNS($B$1:B1),0)"
    .Value = .Value
  End With
End Sub

Nota: si no quieres la columna 1 como resultado:

Sub macro1()
  With Range("B2:T" & Range("A" & Rows.Count).End(3).Row)
    .Formula = "=VLOOKUP($A2,tablabase,COLUMNS($B$1:C1),0)"
    .Value = .Value
  End With
End Sub

Hola Dante
Probé con la fórmula y bueno me sale el siguiente error: me da el dato final y al arrastras no me da los siguientes datos.

¿Algo hice mal?

Tienes que fijar la columna del dato a buscar: $K2

También tienes que poner la referencia en columnas: K$1:L$1

Observa bien cómo debe ir el signo $ (para establecer si es relativa o absoluta la posición).

Así quedaría tu fórmula en la celda L2:

=BUSCARV($K2;tablabase;COLUMNAS($K$1:L$1);0)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas