用VBA关闭Excel应用程序

用VBA关闭Excel应用程序,excel,vba,excel-2007,Excel,Vba,Excel 2007,我使用了以下方法,但没有成功。活动工作簿确实会关闭,但excel窗口仍保持打开状态 Application.ActiveWindow.Close SaveChanges:=False ActiveWorkbook.Close SaveChanges:=False 哪个命令终止应用程序 编辑 再说一点:在工作簿打开事件中,我运行了一个宏。我想在宏完成时终止应用程序。我也试过了,但没有成功 Private Sub Workbook_Open() Macro_MyJob Applicat

我使用了以下方法,但没有成功。活动工作簿确实会关闭,但excel窗口仍保持打开状态

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
哪个命令终止应用程序

编辑

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

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub
我应该把这个应用程序放在哪里。退出命令

Application.Quit 

应该这样做。

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

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

ThisWorkbook.Saved = True
然后,就在

Application.Quit

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

Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
保存工作后,您需要使用此行退出Excel应用程序

Application.Quit
除非您进行了正确的条件检查,否则不要简单地将这些行放在私有子工作簿_Open()中,否则可能会损坏excel文件

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

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

希望它能帮助您解决这个问题。

我尝试了一个似乎有效的序列,您可以在下面看到:

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

这似乎对我有用,虽然看起来我在保存前退出了应用程序,但它保存了

在我的例子中,我只需要关闭一个excel窗口,而不是整个应用程序,因此,我需要告诉要关闭的确切窗口,而不保存它

以下几行工作正常:

Sub test_t()
  Windows("yourfilename.xlsx").Activate
  ActiveWorkbook.Close SaveChanges:=False
End Sub
你可以试试

ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit

这对我也有用。但是,在等号之前缺少冒号,如下所示:SaveChanges:=False
Sub test_t()
  Windows("yourfilename.xlsx").Activate
  ActiveWorkbook.Close SaveChanges:=False
End Sub
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit