在继续表格之前检查条件

时间:2013-08-07 19:19:08

标签: vba excel-vba excel-vba-mac excel

我正在使用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

1 个答案:

答案 0 :(得分:1)

由于您的按钮会触发一个新进程,为什么不让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