VBA Excel中如何显示列的行总和超过特定值时警报?

在这里输入图像说明

我有两列如上所示。 当用户input一行并且列薪水总和大于1000000时,如何显示警告框?

假设“薪水”在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 

如果您没有绑定到VBA,则可以使用Data Validation来完成此操作。 在Excel 2007中,select您的工资范围(比方说列B ),单击function区中的Data Validation并selectData Validation 。 从那里input下面的公式:

 =B:B<1000000 

如果input的值大于1000000,那么这会引发错误。如有必要,还可以自定义错误:

在这里输入图像说明

这是你如何做一个单一的单元格,这个代码需要在该特定工作表的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的解决scheme,如条件格式或数据validation,如@RocketDonkeybuild议是一个更好的主意。