worksheet_calculate()不起作用

我在名为Main的工作表中添加了一个private sub worksheet_calculate()。 我有一个AP列的值与从其他工作表派生的公式,如果这个数字大于XI的价值希望显示一条消息作为警告,它已经结束,但代码不工作,为什么?

Private Sub Worksheet_Calculate() If Sheets("Main").Range("AP7").value > Sheets("Main").Range("x7").value Then MsgBox "You Are Over Pieces Suggested" End If End Sub 

尝试这个。

 Private Sub Worksheet_Calculate() If Range("AP7").Value > Range("X7").Value Then MsgBox "You Are Over Pieces Suggested." End If End Sub 

EDITED ####编辑原始代码以运行Worksheet_Calculate而不是Change。 现在尝试为你设置范围为列。

编辑#########

我喜欢挑战。 尝试这个。

 Private Sub Worksheet_Calculate() Set Target = Range("AP:AP").SpecialCells(xlCellTypeFormulas) If Target Is Nothing Then Exit Sub For Each c In Target If c > Range("X" & c.Row) Then MsgBox "You Are Over Pieces Suggested - Cell " & "AP" & c.Row End If Next End Sub 

考虑在单元格AP7上使用“自定义”公式来使用数据validation:= AP7 <= $ X $ 7填写validation菜单上的错误警报选项卡:停止; “你是在build议”。 我认为这可能会实现你想要的没有任何macros。 事实上,它可以防止无效号码被input到第一位。