|
>照合の方法を-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
|
|