Sobirjon, Добрый день! рекомендую Вам поставить бейкпойнт и проверить чему у вас равно кол-во книг в момент закрытия. У меня число книг всегда больше 1, поскольку есть книга личных макросов. Ещё мне странным кажется, что код работает нормально при вашей записи, но я бы, всё-таки, сначала закрывал книгу и только потом бы закрывал приложение, а не наоборот.
Sobirjon, Добрый день! рекомендую Вам поставить бейкпойнт и проверить чему у вас равно кол-во книг в момент закрытия. У меня число книг всегда больше 1, поскольку есть книга личных макросов. Ещё мне странным кажется, что код работает нормально при вашей записи, но я бы, всё-таки, сначала закрывал книгу и только потом бы закрывал приложение, а не наоборот.Roman777
Много чего не знаю!!!!
Сообщение отредактировал Roman777 - Понедельник, 09.03.2020, 16:25
Задача выйти полностью из эксель, если нет больше открытых книг. Перед обращением естественно смотрел в отладчике по шагово. Условие выполняется, макрос заходит, только по не понятным мне причинам эксель не выходит :help:
Задача выйти полностью из эксель, если нет больше открытых книг. Перед обращением естественно смотрел в отладчике по шагово. Условие выполняется, макрос заходит, только по не понятным мне причинам эксель не выходит :help:
Приложение закрывается и книга не сохранятся (как и планировался) если больше открытых книг нет. Если открыто еще книги, тогда на сообщению которые вылетает с запросом о сохранении книги нажать "сохранить", то запрос занового повторяется пока не нажать "не сохранить". почему-то
Application.DisplayAlerts = False
игнорируется
K-SerJC
If trt ThenExitSub
завершает макрос, но приложение остается по прежнему.
Приложение закрывается и книга не сохранятся (как и планировался) если больше открытых книг нет. Если открыто еще книги, тогда на сообщению которые вылетает с запросом о сохранении книги нажать "сохранить", то запрос занового повторяется пока не нажать "не сохранить". почему-то
событие Workbook_BeforeClose запускается когда вы уже закрываете эту книгу еще раз в нем вызывать закрытие книги не требуется это будет выполнено по завершению этой процедуры.
переменная trt чтобы повторно событие не запустилось.
а так?
Option Explicit Public trt AsBoolean
PrivateSub Workbook_BeforeClose(Cancel AsBoolean) If trt Then trt = False: Cancel = True: ExitSub
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
trt = True If Workbooks.Count = 1Then
ThisWorkbook.Saved = True
Application.Quit Else If Workbooks.Count = 2Then 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 EndIf Else EndIf EndIf
ThisWorkbook.Saved = True EndSub
событие Workbook_BeforeClose запускается когда вы уже закрываете эту книгу еще раз в нем вызывать закрытие книги не требуется это будет выполнено по завершению этой процедуры.
переменная trt чтобы повторно событие не запустилось.K-SerJC
Благими намерениями выстелена дорога в АД.
Сообщение отредактировал K-SerJC - Среда, 11.03.2020, 13:04