阻止userform文本框退出代码在按钮上运行

时间:2017-03-24 16:21:54

标签: excel-vba vba excel

我最近开始使用userform来控制excel电子表格中的捕获信息,然后由后续宏使用。表单有一系列文本框,然后是按钮,可以执行填充或取消表单。

“完成”和“取消”按钮的代码如下:

Private Sub buttonAddAndDone_Click()
    DoStuff
    Unload Me
End Sub

Private Sub buttonCancel_Click()
    Unload Me
End Sub

我被要求对表单中的文本框进行验证,以便在填充时使用以下结构检查信息。在某些情况下,它是强制一个条目,其他情况下它会检查它是一个日期还是数字,但代码的结构是这样的:

Private Sub Control_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    If (IsNull(Control.Value)) Or Control.Value = "" Then
        MyAnswer = MsgBox("Control Value is necessary", vbExclamation, "Macro Error")
        Cancel = True
    End If
End Sub

这导致了一个问题,即如果用户单击“取消”按钮,Control_Exit代码将运行并抛出MsgBox,并且用户无法在不放入任何输入的情况下关闭表单。

是否可以在按下取消按钮后阻止control_exit代码运行?

0 个答案:

没有答案