Page 302 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼エラー値をメッセージボックスで知らせたい ユウ 02/11/6(水) 19:42 ┗Re:エラー値をメッセージボックスで知らせたい 角田 02/11/7(木) 0:23 ┗解決しました! ユウ 02/11/7(木) 9:46 ─────────────────────────────────────── ■題名 : エラー値をメッセージボックスで知らせたい ■名前 : ユウ ■日付 : 02/11/6(水) 19:42 -------------------------------------------------------------------------
こんばんは、いつも参考にさせてもらっています。 自分は感心するばっかりであんまり上達していません。(笑) 今回の質問は VLOOKUP関数を使った時にエラー値(#N/A)になった場合に msgboxで検索値が無い事を表示してマクロを終了させるにはどうしたらよいでしょう。 (エラー値にならない場合は次のコードを実行したいです) 宜しくお願いします。 |
こんにちは。 >VLOOKUP関数を使った時にエラー値(#N/A)になった場合に >msgboxで検索値が無い事を表示してマクロを終了させるにはどうしたらよいでしょう。 >(エラー値にならない場合は次のコードを実行したいです) Excel95互換モードというのが有って、[WorksheetFunction]の記述を省略し Application.VLookup(‥‥‥) とすると、検索エラーの場合に、実行時エラーにならず、セルと同じように エラー値が返ってきます。 Dim rc As Variant 'エラー値と検索値の両方を受け取る為に[Variant] rc = Application.VLookup(‥‥‥) If IsError(rc) Then MsgBox "検索値がありませんでした" Exit Sub End If : [rc]の内容で以降、処理続行 |
どうもありがとうございました。 なんとか解決しました。 Dim r As Integer Range("C2").Select Do Until ActiveCell.Offset(, -1).Value = "" r2 = ActiveCell.Row Err = Application.WorksheetFunction.IsError(Cells(r, 3)) If Err = True Then MsgBox "検索値が未登録です。登録後実行して下さい" Exit Sub End If ActiveCell.Offset(1).Select Loop としました。 Do Until ActiveCell.Value = "" とするとエラーになってしまうのでoffset(,-1)にしましたが・・・ でも解決して良かったです。 ちなみにVB上達の秘訣は??? |