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