[英]VBA Nested IF statement
當特定單元格中包含特定值時,我想顯示一個消息框。 我用以下代碼完成了這個;
If Range("P8") = "Y" Then
MsgBox "Message here"
End If
這是在Worksheet_Change
子目錄內,因此每次另一個單元格值更改時都會顯示消息框。 我試圖通過添加一個布爾變量來解決這個問題,當第一次顯示消息框時設置為true;
If Range("P8") = "Y" Then
If messageshown = False Then
messageshown = True
MsgBox "Message here"
Else
End If
Else
End If
但是,每次更改工作表中的單元格時,仍會顯示消息框。 我有一種感覺,這與我編寫嵌套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
嘗試這個代碼,它首先檢查哪個單元格被更改,如果它不是P8,它將不會彈出消息框。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$P$8" Then
If Range("P8") = "Y" Then
MsgBox "This works"
End If
End If
End Sub
正如Macro Man所指出的,有一個更優化,更有效的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.