Instead of VLookup, use the .Find method with the argument LookIn:=xlValues. That method\argument searches only visible cells.
Dim Found As Range
With Sheets("LooksIt")
.Range("$A:$C").AutoFilter Field:=2, Criteria1:="<>"
Set Found = .Range("A:A").Find(What:=showData.Cells(i, "A").Value, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Found Is Nothing Then
showData.Cells(i, "P").Value = Found.Offset(, 2).Value
Else
MsgBox showData.Cells(i, "A").Value, , "No Match Found"
End If
End With
Bookmarks