|
いつもお世話になっております。
ワークシートチェンジイベントで下記のようなコードを書きました。
しかしエラー処理などを入れているうちにうまく動かなくなり、元に戻したのですがやっぱり動きません。
どこがおかしいのでしょうか??
同じようなコードを書こうとしているワークシートは6枚あります。
そのシートにはデータ一覧とグラフがあり、B1とD1には日付が、G1にはグラフの最大値が入っています。
この3つの値どれかひとつでも変更すると一覧とグラフが切り替わるようにしたいと思っています。
以下の場合のグラフ作成のサブルーチンは1_creategraphです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim onDate As Variant
Dim ofDate As Variant
Dim maxvalue As Variant
Application.ScreenUpdating = False
Application.EnableEvents = False
onDate = Worksheets("Sheet1").Range("B1").Value
ofDate = Worksheets("Sheet1").Range("D1").Value
maxvalue = Worksheets("Sheet1").Range("G1").Value
With Target
If onDate Or ofDate Or maxvalue Then
1_creategraph
End If
End With
Application.EnableEvents = True
End Sub
またエラー処理(3つのセルに値が入力されなかった場合と、B1の日付がD1よりも上回った場合)もしたいです。
あとエラーが出た場合セルのフォーカスをしない処理にしたいです。
以下のようにこれらのエラー処理を入れた後から動かなくなりました。
If maxvalue = "" Then
MsgBox "最大値を入れてください"
Worksheets("Sheet1").Range("G1").Activate
End If
If onDate = "" Then
MsgBox "日付を入れてください"
Worksheets("Sheet1").Range("B1").Activate
End If
If ofDate = "" Then
MsgBox "日付を入れてください"
Worksheets("Sheet1").Range("C1").Activate
End If
If onDate > ofDate Then
MsgBox "正しい日付を入力してください"
Worksheets("Sheet1").Range("B1").Activate
End If
何か問題があるのでしょうか?
さっぱりわかりません。
よろしくお願いします。
|
|