application quit vba excel не закрывает приложение

Application.Quit command not closing the entire Excel Application

I have following code under a button. When clicked it just closes the current Excel sheet but not the entire Excel application.

Note: I don’t have any other sheets open.

The following window still appears.

Mk5ez

3jvVV

12 Answers 12

I had this issue and I resolved it by putting in the Workbook_BeforeClose() :

QdTGq

remove the Application.DisplayAlerts = True from the routine.

from the help for Application.Quit Method :

If unsaved workbooks are open when you use this method, Microsoft Excel displays a dialog box asking whether you want to save the changes. You can prevent this by saving all workbooks before using the Quit method or by setting the DisplayAlerts property to False. When this property is False, Microsoft Excel doesn’t display the dialog box when you quit with unsaved workbooks; it quits without saving them.

This will avoid any (possibly hidden) prompts from stopping excel from closing completely

H8yZu

The window does not close because you are using personal.xlsb. Cut Personal.xlsb and paste in another location.

Instead of Personal.xlsb create and work on modules. It’s a better option.

«ThisWorkbook.Saved = True» after «Application.Quit» works on Excel 2016

I did not try it, but maybe this will help:

According to Norie you might not have anymore workbooks open, therefore Application.Quit will never be executed.

AlphaFrog therefore suggests this:

I had the same issue using the following code closed excel cleanly:

This will allow excel to cleanly close without keeping a «ghost» window open.

This worked for me: (Office 365)

When Application.Quit is encountered in a subroutine, it will only stay in memory and continue to run lines under it and will actually quit until it encounters a «Exit Sub». When the normal «End Sub» at the primary level is encountered, it will then also close Excel. But say if the workbook is somehow closed before reaching the «Exit Sub», «End» or «End Sub» line, then Excel will not close.

Solution is to create a Public variable called ToQuitNow with initial False value and change it to True where you want Excel to quit. and test right after to see if it is true, then return to previous Sub level by «Exit Sub» or «End» to quit right away, and do the same at every subrountine level where it is expected to return from the deeper subroutine. When it gets back to the primary level, then a final «Exit Sub» will actually terminates Excel. If you do not want Excel to ask for saving changes made, add line «ThisWorkbook.Saved = True» right after Application.Quit, or before the final «Exit Sub» at the Primary level and Excel will quit without saving.

Try the following test below, just run «Test»

This is a strange one, hopefully someone will find this answer useful. I ran into something very similar using Excel 2010 (14.0). I stumbled to my answer through experimentation. This is bad answer for general purpose.

For whatever reason Application.Quit fails silently if the option AccessVBOM is not enabled. It is not enabled out of the box and can be set/unset by your network admin by windows policy.

Since we all love code, in this example we are running Excel from C# interop and calling the quit function.

Источник

Application quit vba excel не закрывает приложение

Эксель не закрывается с кодом Application.Quit

Sobirjon Дата: Понедельник, 09.03.2020, 14:56 | Сообщение № 1
35099086

Много чего не знаю.

Sobirjon Дата: Вторник, 10.03.2020, 04:09 | Сообщение № 3
35099086
K-SerJC Дата: Вторник, 10.03.2020, 09:27 | Сообщение № 4
34091259

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
ThisWorkbook.Close False
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
ThisWorkbook.Close False
End If
End If
End Sub

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
ThisWorkbook.Close False
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
ThisWorkbook.Close False
End If
End If
End Sub

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
ThisWorkbook.Close False
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
ThisWorkbook.Close False
End If
End If
End Sub

Sobirjon Дата: Вторник, 10.03.2020, 14:21 | Сообщение № 5
35099086

[/vba]завершает макрос, но приложение остается по прежнему.

Протестировал вот так:
[vba]

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.DisplayFullScreen = False
.DisplayFormulaBar = True
.DisplayAlerts = False
End With

‘ ActiveWorkbook.Close True
‘ Application.Quit
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Cancel = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

[/vba]завершает макрос, но приложение остается по прежнему.

Протестировал вот так:
[vba]

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.DisplayFullScreen = False
.DisplayFormulaBar = True
.DisplayAlerts = False
End With

‘ ActiveWorkbook.Close True
‘ Application.Quit
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Cancel = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

[/vba]завершает макрос, но приложение остается по прежнему.

Протестировал вот так:
[vba]

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.DisplayFullScreen = False
.DisplayFormulaBar = True
.DisplayAlerts = False
End With

‘ ActiveWorkbook.Close True
‘ Application.Quit
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Cancel = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

K-SerJC Дата: Среда, 11.03.2020, 12:59 | Сообщение № 6
34091259

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then trt = False: Cancel = True: Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
End If
End If
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

событие Workbook_BeforeClose запускается когда вы уже закрываете эту книгу
еще раз в нем вызывать закрытие книги не требуется
это будет выполнено по завершению этой процедуры.

переменная trt чтобы повторно событие не запустилось.

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then trt = False: Cancel = True: Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
End If
End If
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

событие Workbook_BeforeClose запускается когда вы уже закрываете эту книгу
еще раз в нем вызывать закрытие книги не требуется
это будет выполнено по завершению этой процедуры.

переменная trt чтобы повторно событие не запустилось. K-SerJC

Благими намерениями выстелена дорога в АД.

Option Explicit
Public trt As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If trt Then trt = False: Cancel = True: Exit Sub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
Else
If Workbooks.Count = 2 Then
If Workbooks(1).Name = «PERSONAL.XLSB» Or Workbooks(2).Name = «PERSONAL.XLSB» Then
Workbooks(«PERSONAL.XLSB»).Close False
ThisWorkbook.Saved = True
Application.Quit
trt = False
End If
Else
End If
End If
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

событие Workbook_BeforeClose запускается когда вы уже закрываете эту книгу
еще раз в нем вызывать закрытие книги не требуется
это будет выполнено по завершению этой процедуры.

Источник

Application quit vba excel не закрывает приложение

добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((

добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((

Сообщение добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((

KSV Дата: Суббота, 21.03.2015, 14:29 | Сообщение № 2
765067

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘ подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False

‘ сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)

‘ сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save

‘ закрывает книгу
Workbooks.Close

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘ подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False

‘ сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)

‘ сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save

‘ закрывает книгу
Workbooks.Close

Сообщение все правильно

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘ подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False

‘ сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)

‘ сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save

‘ закрывает книгу
Workbooks.Close

все отлично)) спасибки. вот чего я хотел)

Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit

все отлично)) спасибки. вот чего я хотел)

Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit 85Muslim85

Сообщение все отлично)) спасибки. вот чего я хотел)

Источник

Команда Application.Quit не закрывает все приложение Excel

У меня есть следующий код под кнопкой. При нажатии он просто закрывает текущий лист Excel, но не все приложение Excel.

Примечание: у меня нет других открытых листов.

Следующее окно все еще появляется.

Mk5ez

11 ответов

Мой вопрос таков: используя VBA в Excel 2013, как я могу изящно закрыть весь экземпляр Excel, когда пользователь решает, что он не хочет заполнять UserForm, и нажимает quit или cancel? В настоящее время, если пользователь нажимает кнопку Выйти или отменить, я проверяю, открыт ли только мой.

У меня была эта проблема, и я решил ее, вставив Workbook_BeforeClose() :

удалите Application.DisplayAlerts = True из процедуры.

из справки по Application.Quit Method :

Это позволит избежать каких-либо (возможно, скрытых) подсказок, препятствующих полному закрытию excel

«ThisWorkbook.Saved = True» после «Application.Quit» работает на Excel 2016

Окно не закрывается, потому что вы используете personal.xlsb. Вырезать Personal.xlsb и вставить в другое место.

Вместо Personal.xlsb создавайте и работайте над модулями. Это лучший вариант.

Я не пробовал, но, может быть, это поможет:

По словам Нори, у вас может больше не быть открытых рабочих книг, поэтому Application.Quit никогда не будет выполнен.

AlphaFrog поэтому предполагает следующее:

У меня была такая же проблема, используя следующий код closed excel чисто:

Это позволит excel чисто закрыться, не оставляя окно «ghost» открытым.

Это сработало для меня: (Office 365)

Я создал форму в excel 2017 году с кнопкой Cancel, но я не знаю, как закодировать ее так, чтобы она закрывалась при нажатии. Я нашел такие вещи, как Application.Quit, но это закрывает все.

У меня есть небольшой файл excel, который запускается приложением планирования каждые 15 минут. Функции в ячейках excel считывают данные из различных мест сети и хранят их в ячейках этого файла excel. Все это прекрасно работает. Затем код VBA сохраняет файл и выполняет Application.Quit. В.

Это странный вопрос, надеюсь, кто-то найдет этот ответ полезным. Я столкнулся с чем-то очень похожим, используя Excel 2010 (14.0). Я наткнулся на свой ответ, экспериментируя. Это плохой ответ для общего назначения.

По какой-либо причине Application.Quit завершается беззвучно, если опция AccessVBOM не включена. Он не включен из коробки и может быть установлен/снят вашим сетевым администратором с помощью политики windows.

Поскольку мы все любим код, в этом примере мы запускаем Excel из C# interop и вызываем функцию quit.

Прошли MacroName из файла bat и попробовали приведенный ниже код его работы. Но я заметил одну вещь: если мы закрываем книгу(ActiveWorkbook.Close) до Application.Quit, то она не работает.

Убедитесь, что на ваших листах нет ссылок на внешние ссылки, особенно на неработающие ссылки.

Я боролся с этой проблемой больше недели, переписывая и комментируя множество кода, чтобы попытаться изолировать проблему. Сегодня утром я наконец-то просмотрел все ссылки на таблицы и внешние листы в своей рабочей книге. Я удалил все ненужные ссылки и неработающие ссылки, и теперь книга закрывается, не зависая в памяти.

Похожие вопросы:

Использование Application.Quit в Excel VBA должно инициировать процедуру выхода по умолчанию, которая включает в себя запрос пользователю сохранить все несохраненные документы, открытые в данный.

У меня есть подменю Workbook_Open, которая делает некоторые вещи, а затем вызывает application.quit. Однако теперь, когда я добавил Это, как я могу отредактировать процедуру, учитывая, что excel.

У меня есть этот простой кусок кода в C# с GTK# : Main.cs : using System; using Gtk; namespace Apu< class MainClass< public static void Main(string[] args)< Application.Init(); new ShowForm();.

Мой вопрос таков: используя VBA в Excel 2013, как я могу изящно закрыть весь экземпляр Excel, когда пользователь решает, что он не хочет заполнять UserForm, и нажимает quit или cancel? В настоящее.

Я создал форму в excel 2017 году с кнопкой Cancel, но я не знаю, как закодировать ее так, чтобы она закрывалась при нажатии. Я нашел такие вещи, как Application.Quit, но это закрывает все.

У меня есть небольшой файл excel, который запускается приложением планирования каждые 15 минут. Функции в ячейках excel считывают данные из различных мест сети и хранят их в ячейках этого файла.

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

У меня есть проблема с момента обновления Excel 2016 года в версии 1712. Если мы делаем application.quit в макросе и не используем Excel GUI, Excel кажется закрытым, но процесс все еще жив. Если мы.

Я создал приложение запуска для пользователей базы данных, чтобы открыть переднюю часть конкретной базы данных. Например, пользователи открывают приложение запуска (которое является Access DB в.

Источник

Команда VBA Application.Quit не закрывает все приложение Excel

У меня есть следующий код под дном. Когда я щелкнул по нему, он просто закрывает текущий лист Excel, но не закрывает все приложение Excel.

Примечание: у меня нет других открытых листов

следующее окно по-прежнему появляется после закрытия вышеуказанного кода VBA.496a0f2b75fa1c761a028e016b9632fcc43acc4e

6 ответов

У меня была эта проблема, и я решил ее, поместив в Workbook_BeforeClose() :

Удалить Application.DisplayAlerts = True от рутины.

от помощи для Application.Quit Method :

Если при использовании этого метода открыты несохраненные книги, Microsoft Excel отображает диалоговое окно с вопросом, хотите ли вы сохранить изменения. Это можно предотвратить, сохранив все книги перед использованием метода Quit или установив для свойства DisplayAlerts значение False. Если это свойство имеет значение False, Microsoft Excel не отображает диалоговое окно при выходе из несохраненных книг; он выходит без сохранения их.

Это предотвратит любые (возможно скрытые) запросы от остановки полного закрытия Excel

У меня возникла та же проблема, и я смог решить ее с помощью кода, который проверяет, открыты ли несколько книг или нет.

Окно не закрывается, потому что вы используете personal.xlsb. Вырежьте Personal.xlsb и вставьте в другое место.

Вместо Personal.xlsb создайте и работайте над модулями. Это лучший вариант.

Перешли MacroName из bat-файла и попробовали приведенный ниже код. Но я заметил одну вещь: если мы закрываем книгу (ActiveWorkbook.Close) перед Application.Quit, то она не работает.

Это странно, надеюсь, кто-то найдет этот ответ полезным. Я столкнулся с чем-то очень похожим, используя Excel 2010 (14.0). Я наткнулся на свой ответ через эксперименты. Это плохой ответ для общего назначения.

По какой-либо причине Application.Quit молча завершается сбоем, если опция AccessVBOM не включена. Он не включен «из коробки» и может быть установлен / отменен вашим сетевым администратором с помощью политики Windows.

Поскольку мы все любим код, в этом примере мы запускаем Excel из взаимодействия C# и вызываем функцию выхода.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • application form для моряков образец заполнения
  • application for schengen visa образец заполнения