Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 08:54   #1
BesTiYa
Пользователь
 
Регистрация: 05.03.2008
Сообщений: 10
По умолчанию Закрыть все файлы Excel,кроме текущего

Подскажите макрос,который бы закрывал (с сохранением) все файлы приложения excel,кроме активного.
Вводила в поиске Закрыть все и закрыть файл,но ничего путного не вышло(
BesTiYa вне форума Ответить с цитированием
Старый 10.12.2009, 09:24   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Сначала закрываем с сохранением все файлы Excel кроме активного и файла, содержащего этот макрос. Затем закрываем с сохранением и файл с макросом. например, так:
Код:
Sub CloseFiles()
    Dim wb As Workbook
    For Each wb In Workbooks
        If wb.Name <> ThisWorkbook.Name And wb.Name <> ActiveWorkbook.Name Then wb.Close Savechanges:=True
    Next
    ThisWorkbook.Close Savechanges:=True
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.12.2009, 10:37   #3
BesTiYa
Пользователь
 
Регистрация: 05.03.2008
Сообщений: 10
По умолчанию

Спасибо большое! Очень полезная вещь!
BesTiYa вне форума Ответить с цитированием
Старый 10.12.2009, 11:20   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Я тут подумал, что если в момент выполнения макроса активной будет книга с этим кодом, то она тоже закроется. Т.е. закроются все открытые книги. Чтобы этого не произошло, нужно строку
Код:
ThisWorkbook.Close Savechanges:=True
заменить на
Код:
If ActiveWorkbook.Name <> ThisWorkbook.Name Then ThisWorkbook.Close Savechanges:=True
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.12.2009, 12:10   #5
BesTiYa
Пользователь
 
Регистрация: 05.03.2008
Сообщений: 10
По умолчанию

а я просто эту строчку убрала.)
BesTiYa вне форума Ответить с цитированием
Старый 10.12.2009, 12:53   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т.е. Вам нужно было оставить не активную книгу, а книгу, содержащую данный код?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 02:42
приплюсовывать все кроме "бс" spoofing Microsoft Office Excel 4 04.11.2008 11:21
Сохранение текущего листа Excel в отдельный файл IpS Microsoft Office Excel 10 04.10.2008 13:45
Закрыть все приложения Михаил Юрьевич Win Api 5 02.06.2008 21:30
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18