Excel VBA Findメソッドで検索値が見つからない場合の分岐

コードと価格からなる表1から、別の表2の、コードが一致する行に価格を転記させたかった。
表1のRangeオブジェクトをFor Eachでループさせて、表2のRangeオブジェクトを検索して、見つけたらオフセットしたセルに転記しようと・・。
が、NULLとか、ない値を検索して検索結果が見つからない時にエラーがでるので、それを分岐させたかった。
For Eachで代入したときにチェックするか、検索したときにチェックするか、試行錯誤してしまったが、検索結果がないときを判断することで解決。

findメソッドの戻り値はなに?がマイクロソフトのヘルプ文書にありました。(参照

この時の戻り値は、検索した任意の文字列が入力されているセルのRange オブジェクトか、または Nothing (オブジェクトを参照していないオブジェクト変数、つまり何も入っていないオブジェクトの意) のどちらかが返されます。

"Range"か"Nothing"で分けられるんですね。

Set myRng = Range("a1:a10")
For Each a In myRng
With tmpRng
Set c = .Find(a, LookIn:=xlValues)
If TypeName(c) = "Range" Then
c.Offset(0, 3).Value = a.Offset(0, 1).Value '検索で見つかったら転記
End If

End With
Next

Excel2003と2007で動作しました。