Vba 如何根据单元格范围的值在Excel中弹出消息?

Vba 如何根据单元格范围的值在Excel中弹出消息?,vba,excel,Vba,Excel,我在A列的单元格中有变量值,从单元格A1开始。我想写一个VB代码来弹出不同的消息框,如果目标单元格中的值等于12,等于13,依此类推。但不到12个不需要一个按摩盒弹出。A列中的单元格具有与同一工作表中的单元格相关的公式 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A24:A300")) = 13 Then MsgBox "add 1 into the e

我在A列的单元格中有变量值,从单元格A1开始。我想写一个VB代码来弹出不同的消息框,如果目标单元格中的值等于12,等于13,依此类推。但不到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

好的,我想我理解你的问题是,如果单元格更改为大于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

欢迎来到SO。因此,这是一个让社区帮助发现和纠正现有代码问题的地方。如果你有你尝试过的代码,请发布它。如果社区想要的是从头开始编写代码,那就不是这样了。非常感谢你。。。这是我一直在尝试的代码。将代码发布到原始帖子中,并用代码标签包装。突出显示文本,然后单击{}按钮。非常感谢…但是当我粘贴您在单元格A1中建议的代码并更改链接单元格中的值时,它会给我以下信息:运行时错误“91”对象变量或块变量未设置“抱歉…”。。。嗯,我把它放在我的excel里,它工作了。。。我不确定是否要粘贴到A1单元格。您将代码完全按原样放入VBA窗口中,并放入正在进行更改的工作表中,对吗?由于操作是工作表更改,因此必须将其放入正在使用的特定工作表的VBA窗口中。我是否做错了?。。。我单击单元格A1,然后单击开发人员中的视图代码并粘贴到那里。如果您能帮助解决此问题,我们将不胜感激。提前感谢在编辑器窗口的顶部是否显示工作表和更改?我在我的原始答案中添加了一个它应该是什么样子的图像。好吧,在玩了一些游戏之后,我想我重新创建了你的错误。两件事。1.您必须在测试之前粘贴代码并保存它,否则它将抛出错误。二,。您必须将其保存为启用.xlsm宏的工作簿,才能保存包含VBA的工作簿,否则它将抛出该错误。