Recorrer Hoja de Excel con VLookup

No soy muy experto programando pero tengo el siguiente codigo, que me busca el contenido de la celda K2 de la "Hoja2" en toda la columna I de la "Hoja1" el cual me funciona pero solo para la primera celda yo lo necesito que me recorra toda la "Hoja2" y me vaya bajando y me busque el contenido de la celda K3, después K4, K5 ... Y así sucesivamente.

Sub btn_Buscar()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf As String
Set b = Sheets("Hoja1")
Set a = Sheets("Hoja2")
pf = 2
uf = b.Range("A" & Rows.Count).End(xlUp).Row
result = Application.WorksheetFunction.VLookup(a.Range("K2"), b.Range("I" & pf & ":J" & uf), 2, False)
a.Cells(2, "L") = result
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

1 respuesta

Respuesta
1

Tu código está mal escrito. Lo adapté un poco, pruébalo:

Sub btn_Buscar()
Application.ScreenUpdating = False
Dim Sht1 As Worksheet, Sht2 As Worksheet
Dim rCell As Range, rRng As Range
Dim uF1 As Integer, uF2 As Integer
Dim result As Variant
Set Sht1 = Sheets("Hoja1")
Set Sht2 = Sheets("Hoja2")
uF1 = Sht1.Range("I" & Rows.Count).End(xlUp).Row
uF2 = Sht2.Range("K" & Rows.Count).End(xlUp).Row
Set rRng = Sht2.Range("K2:K" & uF2)
For Each rCell In rRng.Cells
    result = Application.VLookup(rCell.Value, Sht1.Range("I2:J" & uF1), 2, False)
    If IsError(result) Then
        Cells(rCell.Row, 12).Value = "-"
    Else
        Cells(rCell.Row, 12).Value = result
    End If
Next rCell
Application.ScreenUpdating = True
End Sub

Best

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas