2013-01-07 90 views

回答

1

假设“工资”是在B列

Private Sub Worksheet_Change(ByVal Target As Range) 
Total = Application.WorksheetFunction.Sum(Columns("B:B")) 
If Total >= 1000000 Then 
MsgBox "My message", vbCritical, "Error" 
End If 
End Sub 
+0

,帮助我,谢谢Nadeer。 –

+0

很高兴我可以帮你:) –

+0

嗨Nadeer,我有一个更多的要求是我必须计算一个列的总和,当用户按下另一个表中的按钮。在那种情况下,我认为这是行不通的。你会告诉我该怎么做。 –

1

这是你如何做一个单元格,这段代码需要在特定表格的vba页面中,而不是在模块中。我相信你可以调整它适应你的范围。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Range("A1"), Target) Is Nothing Then 
     If Range("A1").Value > 1000000 
      MsgBox "A1 is greater than 1000000, ALERT! ALERT! ALERT!" 
     End If 
    End If 
End Sub 

但非VBA的解决方案,如条件格式或类似@RocketDonkey其他数据验证已建议是一个更好的主意。

+0

+1到您VBA做的问题问虽然:) – RocketDonkey

2

如果您没有绑定到VBA,则可以使用Data Validation来完成此操作。在Excel 2007中,选择您的工资范围(比如列B),单击功能区中的Data,然后选择Data Validation。从那里,输入以下公式:

enter image description here

=B:B<1000000 

,这将抛出你输入一个值,使其总量列> 1000000的错误任何时候,你也可以根据需要自定义错误