使用VBA关闭Excel应用程序

Bra*_*ani 32 excel vba excel-2007

我使用了以下内容但没有成功.事实上,活动工作簿已关闭,但excel窗口仍保持打开状态.

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
Run Code Online (Sandbox Code Playgroud)

哪个命令终止了应用程序?

编辑

再说一点:在工作簿中打开事件我运行一个宏.我想在宏完成时终止应用程序.我也试过这个没有成功.

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub
Run Code Online (Sandbox Code Playgroud)

我应该把这个Application.Quit命令放在哪里?

var*_*ant 53

我认为你的问题是它在发送命令退出应用程序之前关闭调用宏的文档.

在这种情况下,您的解决方案是不发送命令来关闭工作簿.相反,您可以将工作簿的"已保存"状态设置为true,这将绕过关于关闭未保存书籍的任何消息.注意:这不保存工作簿; 它只是让它看起来像是保存了.

ThisWorkbook.Saved = True
Run Code Online (Sandbox Code Playgroud)

然后,就在之后

Application.Quit
Run Code Online (Sandbox Code Playgroud)


小智 8

要避免"保存"提示消息,必须插入这些行

Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Run Code Online (Sandbox Code Playgroud)

保存工作后,您需要使用此行退出Excel应用程序

Application.Quit
Run Code Online (Sandbox Code Playgroud)

除非你做了正确的条件检查,否则不要简单地将这些行放在Private Sub Workbook_Open()中,否则你可能会破坏你的excel文件.

为安全起见,请创建一个模块来运行它.以下是我提出的代码:

Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
Run Code Online (Sandbox Code Playgroud)

希望它能帮助您解决问题.


Mic*_*ael 6

Application.Quit 
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩。


小智 6

Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub
Run Code Online (Sandbox Code Playgroud)

这似乎对我有用,即使看起来像在保存之前退出应用程序,但它可以节省...