Excel 在继续表单之前检查条件

Excel 在继续表单之前检查条件,excel,vba,macos,Excel,Vba,Macos,我正在使用Excel 2011 for Mac。我有一个包含3个组合框的用户表单。组合框中的数据由电子表格中的信息填充。初始化将填充组合框。我有一个启动数据处理的按钮。在流程的第一步中,我检查用户是否无意中按下了按钮: If (cmbStage.Text = "") Or cmbLowDt.Value = "" Or cmbHighDt.Value = "" Then MsgBox "You are not ready to begin processing!", vbOKOnly cmbSta

我正在使用Excel 2011 for Mac。我有一个包含3个组合框的用户表单。组合框中的数据由电子表格中的信息填充。初始化将填充组合框。我有一个启动数据处理的按钮。在流程的第一步中,我检查用户是否无意中按下了按钮:

If (cmbStage.Text = "") Or cmbLowDt.Value = "" Or cmbHighDt.Value = "" Then
MsgBox "You are not ready to begin processing!", vbOKOnly
cmbStage.Text = ""
cmbLowDt.Value = ""
cmbHighDt.Value = ""

Else
End If
这基本上是检查用户是否没有填写任何内容。我的问题是,如果我添加一个GoTo命令并再次开始检查,因为我最初是通过单击按钮调用函数的,所以我只是一次又一次地循环消息

我想做的是检查条件,如果它存在,让用户重新开始,就像他们没有按下按钮一样。这是流程的一个重要部分,因为这是经过一些漫长的处理后达到这一点的


如果我不能做到这一点,我只想在屏幕上显示一条信息:“你是个十足的白痴,为了平衡你的自然生活,你不应该被允许靠近计算机”,vbOkayOnly

既然你的按钮触发了一个新的过程,为什么不让If语句成为你代码其余部分的网关呢

Sub buttonPress()
If (cmbStage.Text = "") Or cmbLowDt.Value = "" Or cmbHighDt.Value = "" Then
    MsgBox "You are not ready to begin processing!", vbOKOnly
    cmbStage.Text = ""
    cmbLowDt.Value = ""
    cmbHighDt.Value = ""
    End
Else
'Continue with your task
End If
End Sub
或者如果你不能结束

Sub buttonPress()
If (cmbStage.Text = "") Or cmbLowDt.Value = "" Or cmbHighDt.Value = "" Then
    MsgBox "You are not ready to begin processing!", vbOKOnly
    Set yourForm = aNewInstanceOfTheFOrm
    cmbStage.Text = ""
    cmbLowDt.Value = ""
    cmbHighDt.Value = ""
Else
'Continue with your task
End If
End Sub

除此之外,您还可以检查每个单独的条件,并将焦点强制到该特定控件。e、 g.如果cmdStage.Text=“”,则msgbox(“在此输入内容”)cmdStage.SetFocus结束如果。这对于让他们理解他们需要填写的内容是非常有效的,而不是泛泛的“有什么不对劲”的信息。不过再多编一点代码。。。