| 
    
     |  | >照合の方法を-1にしても0にしても1にしても全部「#N/A」になってしまいます。 まず、検索値は A列・1行目 のどちらでもないセルに入れるか、InputBoxなどの
 フォームへ入力するようにした方が良いでしょう。あと、検索の型はヘルプを
 よく読むと分かりますが、1行目の並び方が昇順なら 1 を指定しなくてはならず、
 その場合 B1 が 150 で最小なのに 70 を検索しようとすると"「検索値以下」の
 最大値" という条件から外れてしまうのでエラーが返るのだと思われます。
 よってそのような場合には、最小値 150 を検索値としたと仮定し、列番号 2 と
 指定するようなコードを作ってみました。試してみて下さい。
 
 Sub MyMatch()
 Dim SR As Single, SC As Single
 Dim x As Long, y As Long
 
 With Application
 SR = .InputBox("A列で検索する数値を入力して下さい", Type:=1)
 If SR = False Then Exit Sub
 SC = .InputBox("1行目で検索する数値を入力して下さい", Type:=1)
 If SC = False Then Exit Sub
 If SR < Range("A2").Value Then
 x = 2
 Else
 x = .Match(SR, Range("A:A"), 1)
 End If
 If SC < Range("B1").Value Then
 y = 2
 Else
 y = .Match(SC, Range("1:1"), 1)
 End If
 End With
 MsgBox Cells(x, y).Value
 End Sub
 
 
 |  |