我使用了以下内容但没有成功。事实上,活动工作簿已关闭,但excel窗口仍然打开。
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
终止应用程序的命令是什么?
修改
再说一点:在工作簿中打开事件我运行一个宏。我想在宏完成时终止应用程序。我也试过这个没有成功。
Private Sub Workbook_Open()
Macro_MyJob
Application.Quit
End Sub
我应该把这个Application.Quit命令放在哪里?
答案 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