如何关闭用户表单并在VBA中打开另一个用户表单

时间:2018-01-01 14:08:38

标签: excel vba excel-vba

我在工作簿中有一个用户表单" main.xlsm"打开工作簿时打开,在这个用户窗体上我有一个按钮,打开另一个工作簿" test1.xlsm"。在" test1.xlsm"工作簿我有一个打开工作簿时打开的用户窗体,在这个用户窗体上我有一个关闭此工作簿并保存它的按钮。这个想法是在关闭来自" test1.xlsm"我应该从" main.xlsm"回到userfom,但是在Workbooks("test1.xlsm").Close行,它会关闭所有打开的用户表单

这是" main.xlsm"中用户形式按钮的代码。 :

Private Sub CommandButton1_Click()
    Workbooks.Open ("D:\test1.xlsm")
End Sub

这是" main.xlsm"中用户形式按钮的代码。 :

Private Sub SaveButton1_Click()
    Workbooks("D:\test1.xlsm").Close SaveChanges:=True
End Sub

2 个答案:

答案 0 :(得分:0)

也许你在像这样的新实例中打开test1

Private Sub CommandButton1_Click()
Dim xl As New Application

    With xl
        .Visible = True
        .Workbooks.Open ("D:\Test1.xlsm")
        .Quit
    End With

End Sub

答案 1 :(得分:0)

excel论坛上提出此问题后,我得到了将每个表单的ShowModal属性更改为ShowModal FALSE的建议。所以我将这个参数添加到ThisWorkbook中的代码中:

  UserForm1.Show vbModeless

在两个用户表单中都有效。