【问题标题】:Repeating msgbox重复消息框
【发布时间】:2017-11-17 16:07:32
【问题描述】:

我创建了如下 3 个组合框,用于从列表框生成结果。如果 3 个组合框中的任何一个为空,我想生成一个错误框。但是,我编写的代码会生成多个错误消息框。如何解决这个问题,让 msgbox 只出现一次?

Private Sub Generateresults_Click()
Dim x As Integer
Dim i As Integer
Dim j As Integer
Dim p As Integer
p = Sheets("Training1A").UsedRange.Rows.Count
Sheets("Results").Range("A2:P" & p).ClearContents
x = 2
For i = 0 To Me.Listtest.ListCount - 1
    If Me.Searchoption = "AND" Then
        If Me.Listtest.Column(1, i) = Search1 And Me.Listtest.Column(2, i) = Search2 Then
            For j = 0 To 9
                Sheets("results").Cells(x, j + 1) = Me.Listtest.Column(j, i)
            Next j
            x = x + 1
        Else
            x = x
        End If

        ElseIf Me.Searchoption = "OR" Then
            If Me.Listtest.Column(1, i) = Search1 Or Me.Listtest.Column(2, i) = Search2 Then
                For j = 0 To 9
                    Sheets("results").Cells(x, j + 1) = Me.Listtest.Column(j, i)
                Next j
                x = x + 1
            Else
                x = x
            End If

        ElseIf Me.Searchoption = "ALL" Then            
            For j = 0 To 9
                Sheets("results").Cells(x, j + 1) = Me.Listtest.Column(j, i)
            Next j
            x = x + 1
        Else
            x = x               
            **If Searchoption = "" Or Search1 = "" Or Search2 = "" Then
                MsgBox "Select an option"
            End If**
        End If         
Next i
End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果您想在支付第一个MsgBox 后退出,请将Exit Sub 放在其下方。

    If Searchoption = "" Or Search1 = "" Or Search2 = "" Then
        MsgBox "Select an option"
        Exit Sub
    End If
    

    否则,MsgBox 调用在 For...Next 循环体内,它将在每次满足条件的迭代中重复。

    如果您需要在NextEnd Sub 之间运行更多代码,而不管MsgBox 是否显示,那么您也可以Exit For,退出循环但留在过程中:

    If Searchoption = "" Or Search1 = "" Or Search2 = "" Then
        MsgBox "Select an option"
        Exit For
    End If
    

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2013-11-26
      • 2016-02-25
      • 2017-10-28
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      相关资源
      最近更新 更多