В вашем коде вы сравниваете строки "An"
и "Bn"
, а не содержимое адреса. Но даже если вы исправите это, вы все равно напишите «Match», если str1
равно или больше str2
. Наверное, не то, что вы хотите.
Вы, вероятно, можете сделать что-то вроде:
C1: =IF(COUNTIF(B:B,A1),"Match","Not a Match")
или, в коде
Option Explicit
Sub matcher()
Dim WS As Worksheet
Dim C As Range, rSearch As Range, rLookup As Range
Set WS = Worksheets("sheet2")
With WS
Set rLookup = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
Set rSearch = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp))
.Columns(3).Clear
End With
For Each C In rLookup
If rSearch.Find(what:=C, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False) Is Nothing Then
C.Offset(0, 2) = "No Match"
Else
C.Offset(0, 2) = "Match"
End If
Next C
End Sub