2013-06-06 11 views
6

ExcelのVBAには新しく、セルの変更に関するいくつかの検証を依頼され、ちょっとしたことがありました。VBAセルの計算を中止する

セルに金銭的価値を入力する必要があります(D16と言いましょう)ので、かなりうまく動作するワークシートの_Changeイベントにフックすると思います。

しかし、エントリがD16に送信されたときに計算を完了しないように、残りのワークシートが必要です。基本的には、500000が入力されたときに他のセルが別のワークシートの値で更新されます。

私のコード

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target = Range("D16") Then 

     Dim numeric 
     numeric = IsNumeric(Target) 


     If numeric = False Then 

      MsgBox "error" 
      Exit Sub 

      /// this is where I need to "stop" the calculations from firing 

     End If 

    End If 

End Sub 
+0

@サントス、はい、どちらも私たちの問題を解決していません。私たちは利用可能な各イベントを結びつけ、それぞれのイベントでWorksheet_Changeイベントを呼び出しました。奇妙なシナリオ、私は知っている、私は理由を説明することはできませんが、それは働いた。 – JadedEric

答えて

13

以下のコードが役に立ちますようお願いいたします。これをシートコードセクションに貼り付ける必要があります。

Private Sub Worksheet_Change(ByVal Target As Range) 

    On Error Resume Next 

    Application.EnableEvents = False 
    Application.Calculation = xlCalculationManual 

    Dim rng As Range 
    Set rng = Range("D16") 

    If Not Intersect(Target, rng) Is Nothing And IsNumeric(Target) Then 

     If Target.Value >= 500000 Then 
      MsgBox "Value is greater than 500000" 
     End If 


    End If 


    Application.EnableEvents = True 
    Application.Calculation = xlCalculationAutomatic 
End Sub 
9

使用Application.Calculation = xlCalculationManual

もう一度オンに戻すことを忘れないでください:Application.Calculation = xlCalculationAutomatic

関連する問題