VBA 中怎么设置关闭窗体同时关闭EXCEl,代码应该怎么写,谢谢了

如题所述

1、首先打开需要编辑的Excel表格,右键单击工作表选择打开“查看代码”。

2、然后在弹出来的窗口中点击打开“通用”。选择Terminate 事件。

3、然后在弹出来的窗口中点击输入下方的代码,

Private Sub UserForm_Terminate()

    ThisWorkbook.Saved = True

    Application.Quit

End Sub


4、然后运行程序,这样就可以设置关闭窗体同时关闭EXCEl了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-05

1、可以能过窗体的QueryClose事件设置,具体代码如下:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ThisWorkbook.Close True
End Sub

2、窗体的QueryClose事件可以在点击窗体右上角的关闭按钮时触发。

3、ThisWorkbook表示当前代码所在的工作簿。

4、Close是关闭的方法。

5、 True是指关闭时保存此工作簿,如不想保存可改为FLASE。

第2个回答  推荐于2017-09-11

您好,


以下代码请放到用户窗体的 Terminate 事件中:

Private Sub UserForm_Terminate()
    ThisWorkbook.Saved = True
    Application.Quit
End Sub


以上代码中的 “ThisWorkbook.Saved = True” 语句可以防止在关闭 Excel 时弹出形如下面的对话框:


这个请视具体情况自行修改。

追问

您好,我知道了,现在我出现的状况是EXCEL打开就关闭了,怎么办,我怎么去调试里面的VBA代码,没有办法进去,

追答

你确定把代码放到了 UserForm 的 Terminate 事件中去了吗?
如果是,那么有没有其他代码在作用呢?

本回答被提问者和网友采纳
第3个回答  2019-04-06
如果工作簿打开后就关闭,建议你再次打开时先禁用宏,然后修改Wordbook open事件。估计你在这个事件中设置了
第4个回答  2013-07-07
Unload me        '关闭窗体
Application.Quit    '关闭Excel

追问

您好,这段代码加在哪里啊

追答

这个代码具体放到那要看你自己的需求。我举个列子,见附件。

1)现在假定你有个窗体UserForm1

2)你的窗体上有个按钮“ 关闭”

3)现在需要单击“关闭”这个按钮就关闭窗体并退出Excel。

那么这段代码就放在Userform这个窗体的代码中,并为这个按钮的单击事件。(在VBA编辑器中右击这个窗体,选择查看代码就能看到)。代码如下

Private Sub CommandButton1_Click()
    Application.DisplayAlerts = False   '不显示自动提示和警告。你传的图片就是因为没这句所以Excel才提示。
    ThisWorkbook.Saved = True           '保存工作簿(看需要)
    Unload Me                           '关闭窗体
    Application.Quit                    '关闭Excel
End Sub

楼上那位大哥的代码设置的是窗体的Terminate事件,也要放在窗体代码中。

上面是一般情况,如果你要在普通模块的代码中关闭Excel和窗体也是可以的。


你一打开工作簿Excel就关闭导致你无法调试,可能是你工作 簿中有workbook_open事件或者Auto_Open宏和你窗体事件作用了。你在打开工作簿时按住Shift键即可,或者打开其他工作簿,将宏安全性设为低,禁用宏,再将你那个工作簿打开,再启用宏,再调试。