Excel Userform在首次加载后未初始化

时间:2015-07-22 17:49:44

标签: excel vba excel-vba

我有一个包含多层用户表单的工作簿。

当打开工作簿时,会向用户显示一个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

我在第二层用户表单中遇到了同样的问题,但我想如果我将第一层排序,我可以将修复应用到其余层。

由于

1 个答案:

答案 0 :(得分:2)

你应该试试

Unload Me

而不是

Unload managementFunctions

此外,您可能希望查看Form.ShowForm.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