excel VBAでMatch関数が使えないんですが、どうしてでしょうか?

画像

Excel | Visual Basic44閲覧

ベストアンサー

0

ID非公開

2020/10/30 6:38

ID非公開

2020/10/30 17:06

沢山質問するのに、返信はしないんですね・・・・

ThanksImg質問者からのお礼コメント

エラー処理は、大事ですね。やっぱり。 ご回答ありがとうございました。

お礼日時:10/30 17:44

その他の回答(2件)

0

Matchの記述は間違っていませんが、検索値がないときにもこのエラーが発生します。 Matchを使用する直前に On Error Resume Next そしてErr.Numberにより条件分岐して回避 回避後はエラー対策を元に戻し、続きの処理を継続実行します。 On Error Resume Next ret = Application.WorksheetnnFunction.Match("在庫数", ThisWorkbook.Sheets(1).Range("A1:A100"), 0) If Err.Number <> 0 Then MsgBox "検索値は見つかりませんでした。" Err.Number = 0 Else MsgBox ret End If On Error GoTo 0 '続きの処理

Resumeっていうのは、リジュームで、立て直しって意味かな・・ ご回答ありがとうこざいます。 一度、Error 関係しらべてみます。

0

"在庫数"が無い場合ではないのでしょうか? 先に"在庫数"の存在チェックをする場合です。 Sub sample() Dim txt As String Dim rng As Range txt = "在庫数" Set rng = Sheets(1).Range("A1:A100") If WorksheetFunction.CountIf(rng, txt) = 0 Then MsgBox "無い" Exit Sub End If MsgBox WorksheetFunction.Match(txt, rng, 0) End Sub Findメソッドを使う場合です。 Sub sample() Dim txt As String Dim rng As Range txt = "在庫数" Set rng = Sheets(1).Range("A1:A100") Set rng = rng.Find(txt) If rng Is Nothing Then MsgBox "無い" Exit Sub End If MsgBox rng.Row End Sub