我试图让两个对话框在Private Sub Worksheet_Change(ByVal Target as Range)下工作。只要有人在范围内输入某个值,它们就会弹出。第一个工作正常但第二个根本没有显示。以下是我正在使用的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("J2:J54")) Is Nothing Then Exit Sub
If Target.Value <> "Transportation" Then Exit Sub
MsgBox "TRANSPORTATION: Remember tolls."
If Target.Value <> "Guiding" Then Exit Sub
MsgBox "GUIDING: Remember to add 10%."
End Sub
任何人都可以帮我看看我哪里出错了?
您正在退出每个点的子。尝试改变你的逻辑,即:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("J2:J54")) Is Nothing Then Exit Sub
If Target.Value = "Transportation" Then
MsgBox "TRANSPORTATION: Remember tolls."
ElseIf Target.Value = "Guiding" Then
MsgBox "GUIDING: Remember to add 10%."
End If
End Sub
另一种可能性是使用Select Case
,检查第一个If Not Intersect... Is Nothing
而不是退出sub如果If Intersect...Is Nothing
。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("J2:J54")) Is Nothing Then
Select Case Target.Value
Case "Transportation"
MsgBox "TRANSPORTATION: Remember tolls."
Case "Guiding"
MsgBox "GUIDING: Remember to add 10%."
End Select
End If
End Sub