在vba中怎样用代码关闭excel应用程序,我用excel.application.quit怎么会关不了?

如题所述

Sub 关闭方法1()

Application.DisplayAlerts = False

ThisWorkbook.Save

Application.Quit

ThisWorkbook.Close

Application.DisplayAlerts = True

End Sub

'---------------------------------------------

Sub 关闭方法2()

Application.DisplayAlerts = False

ThisWorkbook.Save

'Application.Quit

Application.DisplayAlerts = True

Shell "taskkill /f /im EXCEL.EXE"

End Sub

是这样的,Close和Quit方法,是可以退出工作簿,和直接彻底关掉Excel的Application的背景界面的,但是必须有先后顺序,你得先用Quit再接Close语句(比如上面方法1),原因是:用了Close之后,再接Quit,你的VBA工程就没有对象支持了,剩下任何代码都无法继续依托Excel对象运行。也可以用另一种方法(比如上面方法2),你用代码保存文档,然后用Bat(批处理)里面的方法,也就是用taskkill /F /IM “程序名称”方法在保存文档之后强制关闭Excel应用界面,这种方法比较彻底,无残留。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-30
不能先关闭工作簿,再运行quit,否则执行不了quit。
在保存Vba代码的工作簿打开的状态下执行quit才有用!
第2个回答  2012-08-10
直接Application.Quit就行了。但对修改过且未保存的工作簿会有保存提示。追问

老大,不行,也只能关工作薄,因为我建了一个退出系统菜单项,希望能像excel最右上角的红色关闭按钮一样的功能

本回答被网友采纳
第3个回答  2012-08-10
ThisWorkbook.Close
相似回答