dポイントプレゼントキャンペーン実施中!

ユーザー定義関数の質問です。

ある値をB列で探し、見つけたセルの行番号を取得したいのですが分かりません。
条件が一つあってそれはAの値が10以下のものは検索から除外するということです。



A  B
6  50
5  45
7  2
12 45
11 9

例えばBが45かつAの値が10以上であるセルの行番号はこの例だと4になります。

ワークシート関数を使うと{=MATCH(45,(A1:A5>=10)*(B1:B5),0)}でできました。しかしユーザー定義関数で.Match(45, Worksheets("Sheet1").Range("A1:A5>=10") * Worksheets("Sheet1").Range("B1:B5"), 0)とやっても#VALUE!となってしまいました。何がおかしいのでしょうか。

A 回答 (2件)

Sub test01()


x = Application.WorksheetFunction.Match("山田", Range("a1:A100"), 0)
MsgBox x
End Sub
A列に山田があります。上記を実行すると、」正しい行番号を返しましたが。
もちろんこれは最初の出現行しか返さない。
これはVBAでエクセルのワークシート関数を使うことで、ユーザー定義関数と違うし、この場合はユーザー定義関数にする必要も無い。
ユーザー関数にするなら、Findメソッドなどを使う手もあるだろうが、質問は何のことを言っているのか。質問者が混乱しているだけでは。
    • good
    • 0

何がおかしいかって?


Range("A1:A5>=10")
ここがおかしいんでしょうね
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!