UserForm在使用Button后冻结

时间:2018-03-12 13:44:40

标签: vba excel-vba userform excel

我在UserFrom中有一个CommandButton,它执行以下操作:

 Private Sub CommandButton_Click()

     If (ModuleExists("myModule") = False) Then
         MsgBox stringAlert
         Exit Sub 'This line does not freezes it.
     End If

     inputsToValidate = True 'This is a public variable
     validarInput 'This method validates the userform inputs, if all OK inputsToValidate = False

     If inputsToValidate Then
         Exit Sub 'This line freezes the userform. The code actually continues, but when it does exits the sub it freezes.
     End If

     DoThings

     Unload InterpolateCurveForm

End Sub

正如您在我的评论中所看到的,代码可以正常工作,除非它进入" If inputsToValidate然后"声明。如果它发生,代码实际上执行Exit Sub行,但之后它冻结。

validarInputs是一个私有子,如果有任何输入错误,它会显示消息。如果一切正常,则不显示任何消息,并且它将公共变量inputsToValidate更改为False

2 个答案:

答案 0 :(得分:1)

我尝试将公共变量更改为局部变量,然后将validarInputs更改为私有函数,因此inputsToValidate的定义如下:inputsToValidate = validarInputs

现在正常运作。

答案 1 :(得分:0)

您可以采取另一种方式:

....

    If inputsToValidate = False Then
        DoThings
        Unload InterpolateCurveForm
    End If

End Sub