こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAでエラー時にメッセージを表示したい

こんばんわ!
エクセルのVBAについて質問です。
以下のように組み込みDATAシートからフィルターをかけて抽出シートへ結果を表示するようになっていますが、DATAシートにデーターがない状態でするとエラーになりますがその際にDATAシートにデーターが入っていませんとメッセージボックスが出る様にするにはどうすればいいでしょうか?
まだまだ勉強中の身ですので教えて頂ければ有難いです。
お手数ですが宜しくお願いします。

Sub 抽出()
Application.ScreenUpdating = False
Sheets("抽出").Activate
Cells.Clear
Sheets("抽出").Range("A1").Value = Sheets("DATA").Range("A2").Value
Sheets("抽出").Range("B1").Value = Sheets("DATA").Range("B2").Value
Sheets("抽出").Range("C1").Value = Sheets("DATA").Range("C2").Value
Sheets("抽出").Range("D1").Value = Sheets("DATA").Range("D2").Value
Sheets("DATA").Range("A3").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("検索").Range("A1:D2"), _
CopyToRange:=Sheets("抽出").Range("A1"), _
Unique:=False
Sheets("抽出").Columns("A:D").AutoFit
Application.ScreenUpdating = True
End Sub

投稿日時 - 2008-07-04 23:25:12

QNo.4151858

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんは。

Sub 抽出()
Application.ScreenUpdating = False
Sheets("抽出").Activate
Cells.Clear
Sheets("抽出").Range("A1").Value = Sheets("DATA").Range("A2").Value
Sheets("抽出").Range("B1").Value = Sheets("DATA").Range("B2").Value
Sheets("抽出").Range("C1").Value = Sheets("DATA").Range("C2").Value
Sheets("抽出").Range("D1").Value = Sheets("DATA").Range("D2").Value

On Error GoTo MSG
Sheets("DATA").Range("A3").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("検索").Range("A1:D2"), _
CopyToRange:=Sheets("抽出").Range("A1"), _
Unique:=False
Sheets("抽出").Columns("A:D").AutoFit
Application.ScreenUpdating = True
Exit Sub

MSG:
MsgBox "DATAシートにデーターがないみたい!", vbCritical
Application.ScreenUpdating = True
End Sub

投稿日時 - 2008-07-05 01:28:33

お礼

merlionXXさん
ご回答ありがとうございます。
大変参考になりました。
On Error GoTo ついても勉強してみます。

投稿日時 - 2008-07-05 12:40:22

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>Sheets("DATA").Range("A3").CurrentRegion.AdvancedFilter _
それより上と、ここ以下は何の関係があるの?
関係の無い箇所は省くとか質問には配慮必要
回答者にコードを解読させるのでなく、何をしたいのか、
どういう場合にフィルタで困るのか、質問には文章で説明するぐらいの配慮が必要と思う。
判った人が回答できればよいというものではない。その他の数万人?も読まされる。

投稿日時 - 2008-07-05 10:50:07

ANo.1

ON ERROR GOTO を検索してみてください。

エラー番号で判断する、ということです。

投稿日時 - 2008-07-04 23:29:57

あなたにオススメの質問