Cómo usar Vlookup en VBA con un rango de búsqueda variable

Tengo en Excel un listado con datos, de los cuales, los que me sirven, comienzan que desde una fila variable hasta el final de la hoja. Mediante Do While recorro la hoja y obtengo el rango de la celda que contiene el primero de ellos. Además, obtengo la ubicación de la última celda.

Ese conjunto de celdas las necesito para que en otro libro me sirvan de referencia para un Vlookup. Por alguna razón, todo lo que he intentado para generar la fórmula del Vlookup en aquel nuevo libro, utilizando el rango de búsqueda que obtuve al principio, no funciona y finalmente la fórmula no me queda con el formato que debiese tener.

Ayuda!

1 respuesta

Respuesta
1

Estas instrucciones hace lo mismo y más rápido que un ciclo do while, en range(rango) de la instrucción Vlookup puedes indicarle el libro y la hoja anteponiendo workbooks(nombre del libro y la extensión). Sheets(nombre de la hoja).

En este ejemplo la instrucción hace lo siguiente .currentregion crea una matriz en memoria de por filas por y columnas alrededor de la celda b2, se detiene al encontrar una fila y columna vacías, esta instrucción se adapta a los rangos variables.

. Address=establece el rango comprendida de los datos por ejemplo de b2:d5

. Rows. Count=indica el total de filas comprendidas en el rango en este caso 3

Y todo lo anterior lo reúnes en el vlookup que en este ejemplo es de rango variable.

Sub buscar_datos()
With Range("b2").CurrentRegion
    rango = .Address
    ultima_fila = .Rows.Count
    valor = "a"
    buscar = WorksheetFunction.VLookup(valor, Range(rango), 3, 1)
End With
End Sub

¡Gracias! 

No hice totalmente lo que me siguieres, (intenté ajustándolo a mis datos pero me dio un error). Sin embargo, fue de gran ayuda porque me pude dar cuenta que el error lo tenía en el código del Vlookup. Yo tenía puesto Application.VLookup(Range..., que lo saqué de por ahí, y al reemplazarla por la Vlookup que tú escribiste funcionó al tiro!

Un millón de gracias por tu tiempo.

Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas