如果单元格中的值超过某个值,我正在尝试编写一个简单的宏来显示弹出窗口(vbOKOnly)。
我基本上有一个包含产品和折扣的工作表。我在一个单元格中有一个公式,比如 A1,它将折扣显示为所有条目的有效折扣百分比(50% 或 0.5)。
我正在寻找的是在单元格 A1 的值超过 50% 时显示消息框的代码,因为另一个单元格的输入将折扣推高了 50% 以上。
谢谢!
如果单元格中的值超过某个值,我正在尝试编写一个简单的宏来显示弹出窗口(vbOKOnly)。
我基本上有一个包含产品和折扣的工作表。我在一个单元格中有一个公式,比如 A1,它将折扣显示为所有条目的有效折扣百分比(50% 或 0.5)。
我正在寻找的是在单元格 A1 的值超过 50% 时显示消息框的代码,因为另一个单元格的输入将折扣推高了 50% 以上。
谢谢!
您可以将以下 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
):
结论:Worksheet_Change
如果 A1 仅取决于位于同一工作表上的数据,则使用Worksheet_Calculate
,否则使用。
本质上,您希望将代码添加到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%。
我不认为消息框是最好的方法,因为您需要循环运行 VB 代码来检查单元格内容,或者除非您打算手动运行宏。在这种情况下,我认为如果值超过上限,最好向单元格添加条件格式以将背景更改为红色(例如)。