Если вы ищете только для первого появления, попробуйте следующее:
Public Sub FindInRange()
Dim sValueToFind As String
Dim rRangeToSearch As Range
Dim rFoundRange As Range
sValueToFind = "The value I'm searching for"
With ThisWorkbook.Worksheets("Sheet1")
Set rRangeToSearch = .Range("A1:A1193")
Set rFoundRange = rRangeToSearch.Find(_
What:=sValueToFind, _
After:=rRangeToSearch.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rFoundRange Is Nothing Then
MsgBox sValueToFind & " found in cell " & rFoundRange.Address & _
" and the value two cells to the right is " & rFoundRange.Offset(, 2), vbInformation + vbOKOnly
Else
MsgBox sValueToFind & " not found.", vbInformation + vbOKOnly
End If
End With
End Sub
Это найти точное соответствие из-за LookAt: = xlWhole и не будет соответствовать дело за MatchCase: = False. Если вы хотите найти последнее вхождение, используйте SearchDirection: = xlPrevious.
Это имитирует использование Ctrl + F на листе. Для получения дополнительной информации о VBA FIND см .: https://msdn.microsoft.com/en-us/library/office/ff839746.aspx