Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Эксель не закрывается с кодом Application.Quit - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Эксель не закрывается с кодом Application.Quit (Макросы/Sub)
Эксель не закрывается с кодом Application.Quit
Sobirjon Дата: Понедельник, 09.03.2020, 14:56 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 2 ±
Замечаний: 0% ±

2016
Доброго времени суток, уважаемые формучане!
Собственно проблема отражена в названии темы, файл примера прицепил.
Буду признателен за помощь
К сообщению приложен файл: 8801346.xlsb(13.1 Kb)
 
Ответить
СообщениеДоброго времени суток, уважаемые формучане!
Собственно проблема отражена в названии темы, файл примера прицепил.
Буду признателен за помощь

Автор - Sobirjon
Дата добавления - 09.03.2020 в 14:56
Roman777 Дата: Понедельник, 09.03.2020, 16:24 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 972
Репутация: 125 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Sobirjon, Добрый день! рекомендую Вам поставить бейкпойнт и проверить чему у вас равно кол-во книг в момент закрытия. У меня число книг всегда больше 1, поскольку есть книга личных макросов.
Ещё мне странным кажется, что код работает нормально при вашей записи, но я бы, всё-таки, сначала закрывал книгу и только потом бы закрывал приложение, а не наоборот.


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

Сообщение отредактировал Roman777 - Понедельник, 09.03.2020, 16:25
 
Ответить
СообщениеSobirjon, Добрый день! рекомендую Вам поставить бейкпойнт и проверить чему у вас равно кол-во книг в момент закрытия. У меня число книг всегда больше 1, поскольку есть книга личных макросов.
Ещё мне странным кажется, что код работает нормально при вашей записи, но я бы, всё-таки, сначала закрывал книгу и только потом бы закрывал приложение, а не наоборот.

Автор - Roman777
Дата добавления - 09.03.2020 в 16:24
Sobirjon Дата: Вторник, 10.03.2020, 04:09 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 2 ±
Замечаний: 0% ±

2016
чему у вас равно кол-во книг

Задача выйти полностью из эксель, если нет больше открытых книг.
Перед обращением естественно смотрел в отладчике по шагово.
Условие выполняется, макрос заходит, только по не понятным мне причинам эксель не выходит :help:
сначала закрывал книгу и только потом бы закрывал приложение

Этого не пробовал. Сейчас проверил, не помог
 
Ответить
Сообщение
чему у вас равно кол-во книг

Задача выйти полностью из эксель, если нет больше открытых книг.
Перед обращением естественно смотрел в отладчике по шагово.
Условие выполняется, макрос заходит, только по не понятным мне причинам эксель не выходит :help:
сначала закрывал книгу и только потом бы закрывал приложение

Этого не пробовал. Сейчас проверил, не помог

Автор - Sobirjon
Дата добавления - 10.03.2020 в 04:09
K-SerJC Дата: Вторник, 10.03.2020, 09:27 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 485
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
Доброго дня!
у меня работает так:


Благими намерениями выстелена дорога в АД.
 
Ответить
СообщениеДоброго дня!
у меня работает так:

Автор - K-SerJC
Дата добавления - 10.03.2020 в 09:27
Sobirjon Дата: Вторник, 10.03.2020, 14:21 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 2 ±
Замечаний: 0% ±

2016
K-SerJC
[vba]
Код
If trt Then Exit 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]
Код
Application.DisplayAlerts = False
[/vba] игнорируется


Сообщение отредактировал Sobirjon - Вторник, 10.03.2020, 14:22
 
Ответить
СообщениеK-SerJC
[vba]
Код
If trt Then Exit 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]
Код
Application.DisplayAlerts = False
[/vba] игнорируется

Автор - Sobirjon
Дата добавления - 10.03.2020 в 14:21
K-SerJC Дата: Среда, 11.03.2020, 12:59 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 485
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
а так?



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

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


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

Сообщение отредактировал K-SerJC - Среда, 11.03.2020, 13:04
 
Ответить
Сообщениеа так?



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

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

Автор - K-SerJC
Дата добавления - 11.03.2020 в 12:59
Sobirjon Дата: Четверг, 12.03.2020, 07:02 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 2 ±
Замечаний: 0% ±

2016
а так?

Огонь respect
Только не могу понять почему при
[vba]
Код
ThisWorkbook.Saved = True
[/vba]
Книга не сохраняется, в чем магия?


Сообщение отредактировал Sobirjon - Четверг, 12.03.2020, 07:09
 
Ответить
Сообщение
а так?

Огонь respect
Только не могу понять почему при
[vba]
Код
ThisWorkbook.Saved = True
[/vba]
Книга не сохраняется, в чем магия?

Автор - Sobirjon
Дата добавления - 12.03.2020 в 07:02
Sobirjon Дата: Четверг, 12.03.2020, 11:35 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 2 ±
Замечаний: 0% ±

2016
Книга не сохраняется, в чем магия?

Нашел в справке deal
Этот как раз то что было мне нужно hands Спасибо, еще раз
 
Ответить
Сообщение
Книга не сохраняется, в чем магия?

Нашел в справке deal
Этот как раз то что было мне нужно hands Спасибо, еще раз

Автор - Sobirjon
Дата добавления - 12.03.2020 в 11:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Эксель не закрывается с кодом Application.Quit (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!