Подтвердить что ты не робот

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

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

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

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

ИЗМЕНИТЬ

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

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

Где я должен поставить эту команду Application.Quit?

4b9b3361

Ответ 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