如果单元格中的值超过某个值,我正在尝试编写一个简单的宏来显示弹出窗口(vbOKOnly)。
我基本上有一个包含产品和折扣的工作表。我在一个单元格中有一个公式,比如A1,它将折扣显示为所有条目的有效折扣百分比(50%或.5)。
我正在寻找的是当单元格A1的值超过50%时显示消息框的代码,因为另一个单元格的输入推动折扣超过50%。
谢谢!
答案 0 :(得分:16)
您可以将以下VBA代码添加到工作表中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") > 0.5 Then
MsgBox "Discount too high"
End If
End Sub
每次在工作表上更改单元格时,它都会检查单元格A1的值。
注意:
Widor使用了不同的方法(Worksheet_Calculate
代替Worksheet_Change
):
结论:如果A1仅依赖于位于同一工作表上的数据,请使用Worksheet_Change
,否则请使用Worksheet_Calculate
。
答案 1 :(得分:2)
基本上,您希望将代码添加到相关工作表的Calculate
事件中。
在VBA编辑器的“项目”窗口中,双击要在编辑器窗口顶部的下拉列表中添加代码的工作表,在左侧和右侧选择“工作表”和“计算”分别
或者,将下面的代码复制到您要使用的工作表的编辑器中:
Private Sub Worksheet_Calculate()
If Sheets("MySheet").Range("A1").Value > 0.5 Then
MsgBox "Over 50%!", vbOKOnly
End If
End Sub
这样,每次工作表重新计算时,都会检查该值是否为> 0.5或50%。
答案 2 :(得分:1)
我认为消息框不是最好的方法,因为您需要在循环中运行VB代码来检查单元格内容,或者除非您打算手动运行宏。在这种情况下,我认为最好在单元格中添加条件格式以将背景更改为红色(例如),如果值超过上限。