如果目标单元格中​​的公式超过某个值,则VBA代码显示消息框弹出窗口

Hat*_*att 9 excel vba messagebox excel-vba

我正在尝试编写一个简单的宏来显示一个弹出窗口(vbOKOnly),如果单元格中的值超过某个值.

我基本上有一个产品和折扣的工作表.我在一个单元格中有一个公式,比如A1,它表示折扣为所有条目的有效折扣百分比(50%或.5).

我正在寻找的是如果单元格A1的值超过50%则显示消息框的代码,因为另一个单元格的输入将折扣推高了50%以上.

谢谢!

ass*_*ias 18

您可以将以下VBA代码添加到工作表中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1") > 0.5 Then
        MsgBox "Discount too high"
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

每次在工作表上更改单元格时,它将检查单元格A1的值.

笔记:

  • 如果A1还依赖于位于其他电子表格中的数据,则在更改该数据时不会调用该宏.
  • 每次在工作表上发生变化时,都会调用将调用的宏.如果它有很多公式(如在1000年代),它可能会很慢.

Widor使用不同的方法(Worksheet_Calculate而不是Worksheet_Change):

  • 优点:如果A1的值与位于其他工作表中的单元格相关联,则他的方法将起作用.
  • 缺点:如果您的工作表上有许多引用其他工作表的链接,他的方法会运行得慢一些.

结论:Worksheet_Change如果A1仅依赖于位于同一工作表上的数据,则使用,Worksheet_Calculate否则使用.