如何关闭用户窗体并在VBA中打开另一个用户窗体

问题描述 投票:2回答:2

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

这是“main.xlsm”中userform的按钮代码:

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

这是“main.xlsm”中userform的按钮代码:

Private Sub SaveButton1_Click()
    Workbooks("D:\test1.xlsm").Close SaveChanges:=True
End Sub
excel vba excel-vba
2个回答
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

0
投票

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

  UserForm1.Show vbModeless

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

© www.soinside.com 2019 - 2024. All rights reserved.