我有一个包含多层用户表单的工作簿。
当打开工作簿时,会向用户显示一个userform,其中包含两个命令按钮,一个用于选择带有pivottable和slicers的工作表,另一个用于打开包含八个命令按钮的另一个用户窗体,其中七个用于调用其他单个用户窗体和八是一个关闭按钮。
我遇到的问题是当我选择打开新用户窗体的命令按钮,然后关闭第二个用户窗体,然后重新选择命令按钮以重新打开第二个用户窗体,出现第二个用户窗体,但没有任何命令按钮工作也没有关闭窗口(X)。
第一个命令按钮后面的代码如下:
Private Sub cmd_manageAbsence_Click()
splashScreen.Hide
Load managementFunctions
managementFunctions.Show
End Sub
第二个用户表单上的关闭和终止代码如下:
Private Sub cmd_close_Click()
Unload managementFunctions
End Sub
Private Sub UserForm_Terminate()
Sheets("Front").Activate
splashScreen.Show
End Sub
我在第二层用户表单中遇到了同样的问题,但我想如果我将第一层排序,我可以将修复应用到其余层。
由于
答案 0 :(得分:2)
你应该试试
Unload Me
而不是
Unload managementFunctions
此外,您可能希望查看Form.Show
和Form.ShowDialog
之间的区别(https://msdn.microsoft.com/en-us/library/aa984358%28v=vs.71%29.aspx ...我意识到这是一个旧页面,但信息仍然有效!)
此外,您还可以从创建表单对象中受益,如下所示:
Dim frm as managementFunctions
set frm = new managementFunctions
frm.Show
然后你可以使用
Me.Hide
而不是Unload Me