Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在用户窗体中循环,直到做出选择或点击退出?_Excel_Vba_Userform - Fatal编程技术网

Excel 如何在用户窗体中循环,直到做出选择或点击退出?

Excel 如何在用户窗体中循环,直到做出选择或点击退出?,excel,vba,userform,Excel,Vba,Userform,我有一个用户表单,客户需要在其中进行选择,因为后续代码在没有输入的情况下无法工作。因此,我检查是否进行了选择。现在,如果没有进行选择,我希望(I)显示一条错误消息,(ii)循环这个序列,直到进行选择或点击退出(退出按钮是用户表单中除“ok”之外的另一个选项) 代码如下所示。问题在于循环序列会不断显示消息框。这样,用户甚至无法返回表单并进行重新选择 有什么有用的想法吗?我相信解决办法很简单,但我的大脑现在卡住了。。。多谢各位 Private Sub CommandButton_weiter_Cli

我有一个用户表单,客户需要在其中进行选择,因为后续代码在没有输入的情况下无法工作。因此,我检查是否进行了选择。现在,如果没有进行选择,我希望(I)显示一条错误消息,(ii)循环这个序列,直到进行选择或点击退出(退出按钮是用户表单中除“ok”之外的另一个选项)

代码如下所示。问题在于循环序列会不断显示消息框。这样,用户甚至无法返回表单并进行重新选择

有什么有用的想法吗?我相信解决办法很简单,但我的大脑现在卡住了。。。多谢各位

Private Sub CommandButton_weiter_Click()
    'check if selection made
    Do While True
    If ComboBox_Kunde.Value = "" Or ComboBox_Lager.Value = "" Then
        MsgBox "Your selection is incomplete." & vbCrLf & vbCrLf _
            & "Please make a selection or exit the form.", vbCritical
    End If
    Loop
    
    'selection
    Dim WB As Workbook: Set WB = ActiveWorkbook
    Dim WS As Worksheet: Set WS = WB.Sheets("directory")
    Dim lager As Range: Set lager = WS.Range("lager")
    
    lager.Value = ComboBox_Lager.Value
    
    UserForm_Selection.Hide
    Unload UserForm_Selection
End Sub

从评论中,OP表示“完美”(又名“工作”):

如果不满足条件,可以使用退出子项

--