powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как закрыть сразу несколько файлов Excel ?
25 сообщений из 26, страница 1 из 2
как закрыть сразу несколько файлов Excel ?
    #34204240
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открыла 19 файлов Excel (так надо для работы)
можно ли сразу закрыть все эти файлы без того чтобы отвечать на вопрос "Сохранять или не сохранять" ?
Спасибо
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34204901
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub ClosAllWorkBooks()
Dim WB As Workbook
    Application.DisplayAlerts = False
    For Each WB In Application.Workbooks
        If Not WB.Name Like ThisWorkbook.Name Then
            WB.Close
        End If
    Application.DisplayAlerts = True
    Next WB
End Sub
используйте этот код.
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34250001
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно узнать
куда этот код записать ?
спасибо
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34250222
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_a_r_i_n_aа можно узнать
куда этот код записать ?
спасибо

если сделаете кнопку на лисет, то щелкните на ней правой кнопкой и выберите "исходный текст". ОТкроется редактор кода. туда поместите код за исключением строк "Sub ClosAllWorkBooks()" и "End Sub".

если сделаете кнопку в панели инструментов, зайдите в редактро VBA (alt+F11) добавьте модуль (не форму и не модуль класса, а просто, туда скопируйте полностью код. после этого правой кнопкой по своей кнопке в панели, выберите назначить макрос и выберите ClosAllWorkBooks
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34250520
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Справочно:

При нажатой клавише Shift в закладке Файл появляется дополнительная команда Закрыть все :)
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34252549
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огромное спасибо всем, всё получилось
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34252563
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё бы можно было закрыть несколько открытых блокнотов одновременно
может кто-ниб тоже знает как
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34324853
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dinogenСправочно:

При нажатой клавише Shift в закладке Файл появляется дополнительная команда Закрыть все :)

пробую (win XP, office2003) жму Закрыть все
почему-то закрываются не все файлы, a только один файл
может делаю что-то не так
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34324877
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_a_r_i_n_a dinogenСправочно:

При нажатой клавише Shift в закладке Файл появляется дополнительная команда Закрыть все :)

пробую (win XP, office2003) жму Закрыть все
почему-то закрываются не все файлы, a только один файл
может делаю что-то не так
а, вот в чём дело ...
если открывать листы в excel обычным способом - всё получается

а у меня
эти "много" открытых файлов образуются в результате формирования отчёта(ов) много раз
Вот как их удалить все сразу - не знаю
Через Закрыть всё - не получается
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34325253
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть это равносильно ситуации, когда
открыл сеанс Ecxel, в нём открыл один файл,
потом открыл другой сеанс excel и в нём открыл один файл,
и так 20 разных сеансов, в каждом открыто по одному файлу
итого открыто 20 файлов
вот как закрыть эти 20 сеансов - не знаю
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34326576
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой должен быть ответ на "Сохранять или не сохранять?"
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #34327660
m_a_r_i_n_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dinogenКакой должен быть ответ на "Сохранять или не сохранять?"
ответ должен быть - Не сохранять
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как закрыть сразу несколько файлов Excel ?
    #39550666
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbapro
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ClosAllWorkBooks()
Dim WB As Workbook
    Application.DisplayAlerts = False
    For Each WB In Application.Workbooks
        If Not WB.Name Like ThisWorkbook.Name Then
            WB.Close
        End If
    Application.DisplayAlerts = True
    Next WB
End Sub


используйте этот код.
А если некоторые файлы открыты не в Application рабочей книги макроса?
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39550817
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они останутся открытыми, есссно.
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39550828
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо позакрывать все Эксели (включая и тот, в котором располагается код):

Код: vbnet
1.
2.
3.
For Each objItem in GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Excel.EXE'",,48)
    Call objItem.Terminate()
Next
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39550967
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЕсли надо позакрывать все Эксели (включая и тот, в котором располагается код):

Код: vbnet
1.
2.
3.
For Each objItem in GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Excel.EXE'",,48)
    Call objItem.Terminate()
Next


А если хочу оставить приложение книги с макросом?
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39550996
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит, найдите именно его среди objItem по каким-нибудь признакам и не терминируйте.
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551042
Ub98O8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это жОстко - гасить процессы насильно. Чего сразу топором-то махать?

Можно искать окна соответствующего класса ("XLMAIN") и посылать в их очередь сообщений сообщение о закрытии. Но тогда вопросы "сохранять изменения" будут задаваться. Поэтому можно опять-таки по имени класса окна ("EXCEL7") добираться посредством AccessibleObjectFromWindow до Excel.Application и уже DisplayAlerts выставлять и прочее делать.
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551904
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ub98O8Это жОстко - гасить процессы насильно. Чего сразу топором-то махать?

Можно искать окна соответствующего класса ("XLMAIN") и посылать в их очередь сообщений сообщение о закрытии.
А как искать? Делаю така, возварщает ноль:
Код: vbnet
1.
2.
3.
4.
5.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub fddfsd()
MsgBox FindWindow("XLMAIN", "")
End Sub
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551915
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ещё бы! наивно искать окно несуществующего класса без заголовка, и рассчитывать что-то найти...
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551920
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНу ещё бы! наивно искать окно несуществующего класса без заголовка, и рассчитывать что-то найти...
Почему тогда программа на delphi находит этот "несуществующий" класс с заголовоком "XLMAIN"?
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551922
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы ищете окно с классом "XLMAIN" и заголовком "" !!! ну надо же смотреть иногда, какому параметру какое значение присваивается, а?
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551926
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaВы ищете окно с классом "XLMAIN" и заголовком "" !!! ну надо же смотреть иногда, какому параметру какое значение присваивается, а?
Ну, не ругайтесь) В delphi в случае, когда мне не важно какой заголовок окна (не класса окна) пишу Nil , а именно:
FindWindow('XLMAIN', nil);. И ничего страшного не происходит, прога ищет открытые эксели как миленькие. По аналогии решил записать что-то подобное в vba: с Null не прокатило, подставил "". Что в данном случае поделать, FindWindow для моей цели не подойдёт? Следующие мой шаг был закрытие ненужных экселей с использованием WM_CLOSE
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551931
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JagareЧто в данном случае поделать, FindWindow для моей цели не подойдёт?Подойдёт, наверное... только надо очень хорошо подумать, что искать. Знаешь, сколько окон генерит единственный экземпляр Excel, даже если ни одного файла не открыто, и на экране лишь дефолтное "Книга1"? у-у-у... а ещё они имеют разные классы, и разные имена... а ещё у всех открытых экземпляров главное окно аппликации имеет одно и то же имя, да и класс - чёрта с два ты определишь, кто есть ху. Так что одной функции будет катастрофически мало... а ведь ещё надо будет переварить хендл в PID процесса, который надо закрывать...
...
Рейтинг: 0 / 0
как закрыть сразу несколько файлов Excel ?
    #39551933
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, сдаётся мне, что дешевле будет позакрывать всё, включая себя, и запустить себя по-новой...
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как закрыть сразу несколько файлов Excel ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]