如何根据单元格区域的值在Excel中弹出消息?

时间:2015-09-02 15:40:25

标签: vba excel-vba excel

我在列A的单元格中有从单元格A1开始的变量值。如果目标单元格中​​的值等于12,并且等于13,我想写一个VB代码来弹出不同的消息框。但不到12个就不需要弹出按摩盒了。 A列中的细胞具有与同一片材中的细胞相关的配方。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Target, Range("A24:A300")) = 13 Then 
        MsgBox "add 1 into the existing Forfeited PH value?" 
    End If 
    If Intersect(Target, Range("A24:A300")) = 14 Then 
        MsgBox "add 2 into the existing Forfeited PH value?" 
    End If 
End Sub

1 个答案:

答案 0 :(得分:0)

好的,所以我想我理解你的问题是说如果单元格被更改为大于12的任何东西,你需要触发消息框。这将是代码:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Target, Range("A1:A300")) > 12 Then 
        MsgBox "add " & Target.value - 12 & " into the existing Forfeited PH value?" 
    End If 
End Sub

这是基于您在消息框中的现有消息...我根据消息假设增加ph值会降低数量,所以数字可能是酸度?而不管。这应该得到你正在寻找的结果。事实上,如果你不想将它限制在300行,你可以把你的范围设为" A:A"并且您可以选择整个列作为您的字段。 好的,在审核了您的电子表格之后,问题是您实际上并没有更改目标,因此所有目标代码都没有用...请使用下面的代码,该代码应该适用于您在电子邮件中发送给我的表格。并确保您当然将文件另存为.xlsm文件。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo eSub
 If (Worksheets("2015").Range(Cells(ActiveCell.Row, 5), Cells(ActiveCell.Row, 5)) - 12 - Worksheets("2015").Range(Cells(ActiveCell.Row, 6), Cells(ActiveCell.Row, 6))) > 0 Then
        MsgBox "add " & Worksheets(1).Range(Cells(ActiveCell.Row, 5), Cells(ActiveCell.Row, 5)) - 12 & " into the Forfeited PH value?"
 End If
eSub:
End Sub