Закрытие приложения Excel с помощью VBA

Я использовал следующее без успеха. Фактически рабочая книга закрывается, но окно excel остается открытым.

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

Какая команда завершает приложение?

РЕДАКТИРОВАТЬ

Чтобы сказать немного больше: В рабочей книге Open event я запускаю макрос. Я хочу завершить приложение, когда этот макрос заканчивается. Я также пробовал это без успеха.

 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 

Не просто просто поместите эту строку в Private Sub Workbook_Open (), если вы не проведете правильную проверку состояния, иначе вы можете испортить свой файл excel.

Для обеспечения безопасности создайте модуль для его запуска. Ниже приведены коды, которые я поставил:

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

Надеюсь, это поможет вам решить проблему.

 Application.Quit 

Должен сделать трюк.

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

Это, похоже, работает для меня, даже если выглядит как уйти от приложения перед сохранением, но это экономит …

Я пробовал определенную последовательность, которая, похоже, работает, как вы можете видеть ниже:

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

В моем случае мне нужно было закрыть только одно окно Excel, а не все приложение, поэтому мне нужно было указать, какое точное окно закрыть, не сохраняя его.

Следующие строки работают очень хорошо:

 Windows("filename.xlsx").Activate ActiveWorkbook.Close SaveChanges:=False 
 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 
  • Проблемы с макросами Excel 2010
  • Функция IsDate возвращает неожиданные результаты
  • VBA: преобразовать текст в число
  • Как отрезать массив в Excel VBA?
  • Повторение случайных величин в VBA
  • Словарь VBA (Excel) на Mac?
  • Скопируйте данные из другой рабочей книги через VBA
  • Excel Vba (кнопка onclick)
  • Loop Through All Subfolders Используя VBA
  • Захват выходного значения из команды оболочки в VBA?
  • Excel VBA - поиск последнего столбца с данными
  • Давайте будем гением компьютера.