Jon*_*ght 3 excel vba excel-vba nested-if
当特定单元格中包含特定值时,我想显示一个消息框.我用以下代码完成了这个;
If Range("P8") = "Y" Then
MsgBox "Message here"
End If
Run Code Online (Sandbox Code Playgroud)
这是在Worksheet_Changesub中,因此每次另一个单元格值更改时都会显示消息框.我试图通过添加一个布尔变量来解决这个问题,当第一次显示消息框时设置为true;
If Range("P8") = "Y" Then
If messageshown = False Then
messageshown = True
MsgBox "Message here"
Else
End If
Else
End If
Run Code Online (Sandbox Code Playgroud)
但是,每次更改工作表中的单元格时,仍会显示消息框.我有一种感觉它'; s到与我写的嵌套if语句,但尝试了各种不同的方式和在那里我下订单的方式做else和end if,但无济于事.
请使用Target参数 - 这是指您要更改的实际单元格.您可以测试它的地址Target以查看它是否是您需要的单元格,然后相应地执行操作.这将停止显示另一个单元格更改时的消息.
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address = "$P$8" And .Value = "Y" Then MsgBox "Message here"
End With
End Sub
Run Code Online (Sandbox Code Playgroud)