Этот код поместит данные из листов в переменную диапазона. Сравнения с использованием переменных диапазона выполняются значительно быстрее, чем при использовании такой ссылки, как:
Sheets("Sheet1").Cells(1,1).Value
Вам потребуется обновить это значение, чтобы отразить используемые вами переменные.
Function search()
' Put data on sheets into ranges
Dim rangeOne As Range, rangeTwo As Range
Set rangeOne = Sheets("Sheet1").UsedRange
Set rangeTwo = Sheets("Sheet2").UsedRange
' Iterands for rangeOne and rangeTwo respectively
Dim i As Long, j As Long
For i = 2 To rangeOne.Rows.Count
For j = 2 To rangeTwo.Rows.Count
If InStr(rangeOne(i, 1).Value2, rangeTwo(j, 1).Value2) Then
rangeTwo(j, 2).Value2 = rangeOne(i, 2).Value2
End If
Next j
Next i
End Function