如果满足某些条件,则弹出消息框

时间:2013-02-26 15:12:23

标签: excel excel-vba vba

我正在制作成本单。我输入的每个成本行项目都有一个有效日期,需要更新成本。我正在尝试弹出一个消息框,以便在费用超过其有效日期时通知我。在我的电子表格中,有效日期在D栏的“报价表”中,我在单元格B2中的“数据输入”表上有实际日期。我也有复选框来选择您想要包含哪些成本项目,当选中时,使用True或False填充Q列。我要做的是做一个在选择项目时运行的宏。因此,如果列Q = True,如果列D小于“数据输入”上的单元格B2,则MsgBox“Price已过期!”“我也有小计,其中包含日期空白所以如果列D为空,我需要说些什么,然后忽略它。谢谢你的帮助!我在网上找到了以下内容并尝试了但是没有用。

Private Sub Worksheet_Change(ByVal Target As Range)
'Only run if change made to D3, and D2 and D3 are not = ""
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub

If Range("D:D").Value < Sheets("Data Entry").Range("B2").Value Then
MsgBox "Cost is out of date!"
End If

End Sub

1 个答案:

答案 0 :(得分:2)

您需要在第一个IF构造中添加一个条件以检查空白单元格,并将第二个IF构造中的Range(“D:D”)添加到目标:

Private Sub Worksheet_Change(ByVal Target As Range)
'Only run if change made to D3, and D2 and D3 are not = ""
If Intersect(Target, Range("D:D")) Is Nothing or IsEmpty(Target) Then Exit Sub

If Target.Value < Sheets("Data Entry").Range("B2").Value Then
   MsgBox "Cost is out of date!"
End If