Se você está falando sobre o não comentado if
- você não precisa selecionar e você pode usar o açúcar sintático:
If [iferror(isnumber(match(A1,B:B,0)),false)] = True Then
MsgBox ("True")
Else: MsgBox ("False")
end if
Apenas trate os intervalos como faria com as funções, por exemplo Sheet1!B:B
Você também pode deixar de fora o worksheetfunction
, o que permitirá erros (se a sua fórmula retornar um erro)
With Application
if .iferror(.isnumber(.match( ...
end with
Essencialmente, sua "correspondência" não está fazendo referência aos dados corretamente. Erro 2015 - consulte esta documentação
Um problema maior pode ser como você está lidando com isso. Você deve usar o tratamento de erros para lidar com o erro. Isso seria melhor -
Sub test()
lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
x = Application.Match(ActiveSheet.Range("B" & i), Sheets("Sheet1").Range("B1:B" & lr), 0)
If IsNumeric(x) Then
MsgBox (x)
End If
Next
End Sub