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
是为了什么,是为了保存还是只是为了不显示消息而退出,因为你没有用它来保存文件。
我创建了一个具有多种功能的用户窗体。
当我打开 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
是为了什么,是为了保存还是只是为了不显示消息而退出,因为你没有用它来保存文件。