Закрытие приложения Excel с помощью VBA
Я использовал следующее без успеха. Фактически рабочая книга закрывается, но окно excel остается открытым.
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
Какую команду завершает приложение?
ИЗМЕНИТЬ
Чтобы сказать немного больше: В рабочей книге Открыть событие Я запускаю макрос. Я хочу завершить приложение, когда этот макрос заканчивается. Я также пробовал это без успеха.
Private Sub Workbook_Open()
Macro_MyJob
Application.Quit
End Sub
Где я должен поставить эту команду Application.Quit?
Ответы
Ответ 1
Я думаю, ваша проблема в том, что он закрывает документ, вызывающий макрос, перед отправкой команды для выхода из приложения.
Ваше решение в этом случае - не отправлять команду для закрытия книги. Вместо этого вы можете установить "Сохраненное" состояние рабочей книги в true, что обойдет любые сообщения о закрытии несохраненной книги. Примечание: это не сохраняет книгу; он просто заставляет его выглядеть так, как будто он сохранен.
ThisWorkbook.Saved = True
а затем, сразу после
Application.Quit
Ответ 2
Чтобы избежать сообщения "Сохранить", вы должны вставить эти строки
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
Надеюсь, что это поможет вам решить проблему.
Ответ 3
Application.Quit
Должен сделать трюк.
Ответ 4
Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub
Кажется, это работает для меня, хотя похоже, что я оставляю приложение перед сохранением, но он сохраняет...
Ответ 5
Я пробовал определенную последовательность, которая работает, как вы можете видеть ниже:
ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
Ответ 6
В моем случае мне нужно было закрыть только одно окно Excel, а не все приложение, поэтому мне нужно было указать, какое именно окно закрыть, не сохраняя его.
Следующие строки работают просто отлично:
Sub test_t()
Windows("yourfilename.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False
End Sub
Ответ 7
Вы можете попробовать
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit
Ответ 8
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