0

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

4

1 回答 1

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
于 2013-08-07T19:32:34.857 回答