2009-08-06 7 views
0

私はその値が毎分更新されるExcelセルを持っています。時間枠内で値が変更されたときに警告するVBA機能

警告メッセージボックスが必要です。そのセル値は特定の時間に移動します。

  • それは1分で7に達したならば、私はそれを警告するメッセージボックスが必要になります。

    は、セルの値が10を持っていると仮定します。

  • 1分で7に達していない場合は、アラートは必要ありません。

私のためにこのためのマクロを書くのを助けてください。ワークブックを開くとき

+1

これは既にわかっていますが、このExcelドキュメントがAccessデータベースになる可能性があります。 – Smandoli

答えて

5

はThisWorkbookのための内部VBAエディタ、次のコード

Dim WithEvents SheetToWatch As Worksheet 

Private Sub SheetToWatch_Change(ByVal Target As Range) 
If Target.Address = "$A$2" Then 
    If Target.Value = 7 Then 
     MsgBox "changed to 7" 
    End If 
End If 
End Sub 
Private Sub Workbook_Open() 
    Set SheetToWatch = Sheets("Sheet1") 
End Sub 

を書くことができ、基本的にコードは、変数SheetToWatchへのSheet1の参照を設定します。 WithEventsを使用して変数を宣言すると、イベントをキャプチャできます。

私はChangeイベントを使用しており、変更されたセルがA2かどうかを確認しています。もしそうなら、私は値をチェックしたり、値を7と比較しています(ダイナミックで、扱い方によって異なります)。

これが役立つかどうかを確認してください。

+1

SheetActivateは、シートがフォーカスを取得したときに起動し、データが変更されたときには起動しません。 – RBarryYoung

+1

@RBarryYoung:そうです。その余分なコードを誤って追加しました。私は今それを編集します。ありがとう!! – shahkalpesh

0

私が考えることができる方法では、関数ではできません。

セルを更新するメカニズムを制御する場合は、書き込んだVBAサブルーチンを呼び出すことができます。代わりに、警告を送信してからそのルーチンからセルを更新する必要があります。

更新メカニズムを制御していない場合、動作する可能性があると思うのは、Cell、Range、またはWorksheetクラスのVBAからキャッチしてそこから警告を受け取ることができるChangedDateイベントです。

関連する問題