一个Private Sub下的两个对话框功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Private Sub下的两个对话框功能相关的知识,希望对你有一定的参考价值。

我试图让两个对话框在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

以上是关于一个Private Sub下的两个对话框功能的主要内容,如果未能解决你的问题,请参考以下文章

Private Sub Timer1_Timer()这段代码的意思?

VBS脚本编程——过程与函数

如何在一张工作表上运行 2 个 Private Sub Worksheet_Change?

VB里的“Private Sub Command1_Click()”是啥意思?

Private Sub、Function 和 Class 的区别

vb怎么实现弹出对话框选择文件路径