Закрыть эксель если не открыты другие файлы

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
RomaS
Сообщения: 57
Зарегистрирован: 05 мар 2008, 09:59

Добрый день!
Проверить, есть ли другие открытые эксель файлы, если нет то закрыть приложение, если есть - то закрыть только thisworkbook
Не могу сообразить что-то...
Если так: Application.ActiveWorkbook.Close False - то остается пустое окно экселя (если была открыта только одна, активная раб книга), а если так: Application.Quit - то вообще все закрывается (и текущая и все свернутые)...
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

В модуль книги:

Код: Выделить всё

[color=darkblue]Private[/color] [color=darkblue]Sub[/color] Workbook_BeforeClose(Cancel [color=darkblue]As[/color] [color=darkblue]Boolean[/color])
    [color=darkblue]If[/color] Workbooks.Count = 1 [color=darkblue]Then[/color] Application.Quit
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
И в своём макросе выполняете команду ThisWorkbook.Close False
Если книга одна - она закроется вместе с Excel.
Если открыто несколько книг, то Excel останется запущенным.
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

EducatedFool

Написал код:

Код: Выделить всё

Sub main()
MsgBox Workbooks.Count
End Sub
Открыто 2 книги, а выдаётся сообщение, что 3 книги.
RomaS
Сообщения: 57
Зарегистрирован: 05 мар 2008, 09:59

Благодарю!
У меня, кстати, нормально пишет, что две открыто)
Ответить