質問者が納得こんにちわ。
なるほど、
「Offsetを使うことに違和感がある。もっとシンプルに出来るのではないか。」
ということですね。
ご想像の通り、コードの書き方にはいくつかのやり方があります。
このような方法のほうが腑に落ちるのではないでしょうか。
うまくいくといいですね。
(手元にサンプルがないためデバッグしておりませんがご容赦ください。)
For i = 3 To Sh1Row
'検索値設定
Sh1Det = Sh1.Cells(i, "C").Value
For h = 2 To...