使用VBA关闭Excel应用程序

时间:2010-09-02 14:45:05

标签: excel vba excel-2007

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

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

终止应用程序的命令是什么?

修改

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

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

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

8 个答案:

答案 0 :(得分:51)

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

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

ThisWorkbook.Saved = True

然后,就在

之后
Application.Quit

答案 1 :(得分:8)

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

Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True

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

Application.Quit

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

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

Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub

希望它可以帮助您解决问题。

答案 2 :(得分:4)

Application.Quit 

应该做的伎俩。

答案 3 :(得分:3)

Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub

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

答案 4 :(得分:1)

我尝试了一个似乎有效的序列,如下所示:

ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

答案 5 :(得分:0)

在我的情况下,我需要关闭一个excel窗口而不是整个应用程序,因此,我需要告诉关闭哪个确切的窗口,而不保存它。

以下几行正常:

Windows("filename.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False

答案 6 :(得分:0)

您可以尝试

ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit

答案 7 :(得分:-2)

Sub button2_click()
'
' Button2_Click Macro
'
' Keyboard Shortcut: Ctrl+Shift+Q
'
    ActiveSheet.Shapes("Button 2").Select
    Selection.Characters.Text = "Logout"
    ActiveSheet.Shapes("Button 2").Select
    Selection.OnAction = "Button2_Click"
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Save
    Application.Quit
End Sub