如果在目标小区中的公式超过一定值VBA代码来显示消息框弹出(VBA code to show Mes

2019-09-16 08:19发布

我想,如果在一个单元格的值超过一定值,写一个简单的宏以显示弹出式(vbOKOnly)。

我基本上有产品和折扣工作表。 我有一个小区中的公式,假设A1,即示出了折扣为百分比(50%或0.5)中的所有条目的有效折扣。

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

谢谢!

Answer 1:

您可以在下面的VBA代码添加到您的工作表:

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

每一个小区被在片材上改变时,它将检查单元格A1的值。

笔记:

  • 如果A1还取决于位于其他表格中的数据,宏不会 ,如果你改变数据调用。
  • 宏将被调用将被要求您的工作表,每次有新的变化。 如果它有许多式(如1000),这可能是缓慢的。

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

  • 优点:如果A1的值被链接到位于其他工作表单元他的方法会奏效。
  • 缺点:如果你对你的表引用其他工作表环节多,他的方法将运行有点慢。

结论 :使用Worksheet_Change如果A1仅依赖于位于同一片数据,使用Worksheet_Calculate如果不是。



Answer 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%。



Answer 3:

我不认为一个消息框,是一起去这是你需要在一个循环中运行VB代码检查单元格内容的最好方式,或者除非您打算手动运行宏。 在这种情况下,我认为这将是更好的条件格式单元添加到背景更改为红色(例如)如果该值超过上限。



文章来源: VBA code to show Message Box popup if the formula in the target cell exceeds a certain value