Buscarv a través de macro

Como puedo hacer que se ejecute un buscarv a través de una macro?

Esta es la formula que tengo que me funciona pero las tengo copiada en una columna entera y me gustaría que lo hiciera con una macro y buscar la cantidad x de datos.

=SI.ERROR(BUSCARV(O2;Detenidas!B:S;3;1);"")

1 Respuesta

Respuesta
1

¿Quieres qué la macro copie la fórmula?

¿O qué la macro haga las búsquedas y te ponga el resultado en una columna?

Que realize la búsqueda y pegue el dato en una columna

saludos

Esta es la macro

Sub buscarv()
'Por.DAM
Set h1 = ActiveSheet
Set h2 = Sheets("Detenidas")
For i = 2 To h1.Range("O" & Rows.Count).End(xlUp).Row
r = Application.VLookup(h1.Cells(i, "O"), h2.Range("B:S"), 3, True)
If IsError(r) = True Then Cells(i, "P") = "" Else Cells(i, "P") = r
Next
End Sub

El resultado te lo pone en la columna P

Saludos. DAM
Si es lo que necesitas.

Ultima pregunta si el dato que busca no esta igual pega un dato que encontró en otra busqueda, que puedo hacer?

Lo que pasa es que en tu fórmula tienes esto

SI.ERROR(BUSCARV(O2;Detenidas!B:S;3;1);"")

Después del 3, tienes el indicador de ordenado 1 (uno), esto significa que te traiga la coincidencia aproximada, por eso siempre te trae un dato, ya sea el dato exacto o la coincidencia aproximada.

Si quieres que sea el dato exacto, en lugar de un 1 (uno), tienes que poner 0 (cero).

En la macro cambia esta línea

r = Application.VLookup(h1.Cells(i, "O"), h2.Range("B:S"), 3, True)

Por esta

r = Application.VLookup(h1.Cells(i, "O"), h2.Range("B:S"), 3, False)

Indicador False

Saludos. DAM

No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas