
"検索"といえば、一般的には"セルの検索"を指します。セルの検索は、RangeオブジェクトのFindメソッドです。Findメソッドは、検索文字列が見つからないとき、実行時エラーになるのではなく、Nothingという値を返しますので、このエラーは発生しません。ちなみに、セルを検索するときは、検索結果がNothingかどうか(検索文字列が見つかったかどうか)を判定するのがセオリーです。
Sub Sample1()
Dim FoundCell As Range
Set FoundCell = Cells.Find(What:="tanaka")
If FoundCell Is Nothing Then
MsgBox "見つかりません"
Else
FoundCell.Activate
End If
End Sub
ところが、セルの検索をマクロ記録すると、見つかった検索文字列(が入力されているセル)が、ただちに選択されるので、次のようなコードが記録されます。
Sub Macro2()
''引数は省略しました
Cells.Find(What:="tanaka").Activate
End Sub
マクロ記録で記録されたコードをそのまま使うと、検索文字列が見つからないときエラーになります。

これは、検索に失敗したとき、「Cells.Find(What:="tanaka")」の結果がNothingを返すので「Nothing.Activate」を実行しようとしたために発生するエラーです。Nothingはセル(Rangeオブジェクト)ではありませんので、Activateメソッドを持っていません。
「検索文字列が見つかりませんでした」のエラーではありませんが、セルを検索するマクロで間違いやすいポイントですので、注意が必要です。