gpt4 book ai didi

vba - 重复消息框

转载 作者:行者123 更新时间:2023-12-03 00:46:58 24 4
gpt4 key购买 nike

我创建了 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

最佳答案

如果您想在显示第一个 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

关于vba - 重复消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47354785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com