对象如何与客户断开连接?
问题描述:
我从Excel 2016 VBA下面的代码。对象如何与客户断开连接?
Private Sub useridno_AfterUpdate()
Dim strMsg As String
Dim ret_type As Integer
Dim strTitle As String
strTitle = "Wrong User ID Number!"
strMsg = " Would you like to try again?"
If Me.useridno.Value <> 1 Then
ret_type = MsgBox(strMsg, vbYesNo + vbCritical, strTitle)
Select Case ret_type
Case 6
Me.useridno.SetFocus
Me.useridno.Text = ""
Case 7
Unload Me
End Select
End If
End Sub
当我运行它,它返回以下错误:
发生这种情况时,我选择在消息框中的“否”按钮。这是为什么?
答
某处在你的项目,你有一个Show
命令,它显示窗体。从那一刻起,用户表单处于控制之中。当用户窗体关闭时,将继续执行Show
命令后面的代码。 @Storax指出的命令是Me.Hide
。
你的代码有Unload Me
代替。当其他过程试图在Show
命令之后引用用户表单时发生此错误。您的代码可能会尝试从表单读取一些数据,或者可能存在无害的Set UserForm = Nothing
。它已经卸载,因此不能再提及。
正确的方法是在调用过程中卸载表单,然后执行Show
命令,并从您想要使用的表单中检索到所有数据。然后,如果你希望显式地从内存中释放窗体的对象变量,你可以这样做。
+0
注意到先生。谢谢。我现在明白!:)也感谢Storax! –
变化的数据类型与变种昏暗ret_type作为整数变暗ret_type为Variant – Sixthsense
什么样的控制是'useridno'? –
@RobinMackenzie,这是我的用户表单中的文本框。 –