Страница 1 из 1

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

Добавлено: 11 сен 2009, 10:05
RomaS
Добрый день!
Проверить, есть ли другие открытые эксель файлы, если нет то закрыть приложение, если есть - то закрыть только thisworkbook
Не могу сообразить что-то...
Если так: Application.ActiveWorkbook.Close False - то остается пустое окно экселя (если была открыта только одна, активная раб книга), а если так: Application.Quit - то вообще все закрывается (и текущая и все свернутые)...

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

Добавлено: 11 сен 2009, 10:14
EducatedFool
В модуль книги:

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

[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 останется запущенным.

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

Добавлено: 11 сен 2009, 10:44
Busine2009
EducatedFool

Написал код:

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

Sub main()
MsgBox Workbooks.Count
End Sub
Открыто 2 книги, а выдаётся сообщение, что 3 книги.

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

Добавлено: 11 сен 2009, 11:10
RomaS
Благодарю!
У меня, кстати, нормально пишет, что две открыто)