VBA 宏中的用户窗体正在关闭整个 excel 文件

Userform in VBA macro is closing the entire excel file

我创建了一个具有多种功能的用户窗体。

当我打开 Excel 文件时,表单会打开,但是如果我尝试关闭表单,Excel 文件会一起关闭。此外,我无法打开此 Excel 的 VBA(包含表格),所以我所做的(这真的很蠢)是打开另一个 Excel,按 Alt+F11 打开宏环境,然后我可以用用户窗体打开我的 Excel 文件。

我认为我的问题出在这个特定的代码中:

Private Sub UserForm_Terminate()
    'Application.Visible = True
    ActiveWorkbook.Saved = True
    Application.Quit
End Sub

谁能猜出这是什么问题?

如果您只想关闭用户表单,请使用 Unload Me 而不是 Application.Quit

您需要将您的用户窗体显示为无模式 :

UserForm.Show False

这样您就可以在 UF 后面导航,甚至可以直接打开 VBA。

很明显,如果您在退出 UF 时只是关闭主机应用程序,那么执行其他任何操作都会变得更加困难!

所以也许这会是一个更好的解决方案:

Private Sub UserForm_Terminate()
    ActiveWorkbook.Saved = True
    'ThisWorkbook.Save


    If MsgBox("Do you want to close Excel?", vbOKCancel + vbQuestion, "Exit Excel?") <> vbOK Then
        'Do nothing
    Else
        Application.Quit
    End If
End Sub

我不知道你的行 ActiveWorkbook.Saved = True 是为了什么,是为了保存还是只是为了不显示消息而退出,因为你没有用它来保存文件。