Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как закрыть сразу несколько файлов Excel ? / 25 сообщений из 26, страница 1 из 2
15.12.2006, 18:12
    #34204240
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
открыла 19 файлов Excel (так надо для работы)
можно ли сразу закрыть все эти файлы без того чтобы отвечать на вопрос "Сохранять или не сохранять" ?
Спасибо
...
Рейтинг: 0 / 0
16.12.2006, 14:35
    #34204901
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Код: 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
11.01.2007, 19:16
    #34250001
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
а можно узнать
куда этот код записать ?
спасибо
...
Рейтинг: 0 / 0
11.01.2007, 22:14
    #34250222
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
m_a_r_i_n_aа можно узнать
куда этот код записать ?
спасибо

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

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

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

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

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

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

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

а у меня
эти "много" открытых файлов образуются в результате формирования отчёта(ов) много раз
Вот как их удалить все сразу - не знаю
Через Закрыть всё - не получается
...
Рейтинг: 0 / 0
12.02.2007, 20:15
    #34325253
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
то есть это равносильно ситуации, когда
открыл сеанс Ecxel, в нём открыл один файл,
потом открыл другой сеанс excel и в нём открыл один файл,
и так 20 разных сеансов, в каждом открыто по одному файлу
итого открыто 20 файлов
вот как закрыть эти 20 сеансов - не знаю
...
Рейтинг: 0 / 0
13.02.2007, 12:02
    #34326576
dinogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Какой должен быть ответ на "Сохранять или не сохранять?"
...
Рейтинг: 0 / 0
13.02.2007, 16:22
    #34327660
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
dinogenКакой должен быть ответ на "Сохранять или не сохранять?"
ответ должен быть - Не сохранять
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.11.2017, 09:04
    #39550666
Jagare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
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
10.11.2017, 11:18
    #39550817
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Они останутся открытыми, есссно.
...
Рейтинг: 0 / 0
10.11.2017, 11:28
    #39550828
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Если надо позакрывать все Эксели (включая и тот, в котором располагается код):

Код: 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
10.11.2017, 13:45
    #39550967
Jagare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
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
10.11.2017, 14:07
    #39550996
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Значит, найдите именно его среди objItem по каким-нибудь признакам и не терминируйте.
...
Рейтинг: 0 / 0
10.11.2017, 14:54
    #39551042
Ub98O8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Это жОстко - гасить процессы насильно. Чего сразу топором-то махать?

Можно искать окна соответствующего класса ("XLMAIN") и посылать в их очередь сообщений сообщение о закрытии. Но тогда вопросы "сохранять изменения" будут задаваться. Поэтому можно опять-таки по имени класса окна ("EXCEL7") добираться посредством AccessibleObjectFromWindow до Excel.Application и уже DisplayAlerts выставлять и прочее делать.
...
Рейтинг: 0 / 0
13.11.2017, 06:34
    #39551904
Jagare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
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
13.11.2017, 08:05
    #39551915
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Ну ещё бы! наивно искать окно несуществующего класса без заголовка, и рассчитывать что-то найти...
...
Рейтинг: 0 / 0
13.11.2017, 08:23
    #39551920
Jagare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
AkinaНу ещё бы! наивно искать окно несуществующего класса без заголовка, и рассчитывать что-то найти...
Почему тогда программа на delphi находит этот "несуществующий" класс с заголовоком "XLMAIN"?
...
Рейтинг: 0 / 0
13.11.2017, 08:37
    #39551922
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
Вы ищете окно с классом "XLMAIN" и заголовком "" !!! ну надо же смотреть иногда, какому параметру какое значение присваивается, а?
...
Рейтинг: 0 / 0
13.11.2017, 08:54
    #39551926
Jagare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
AkinaВы ищете окно с классом "XLMAIN" и заголовком "" !!! ну надо же смотреть иногда, какому параметру какое значение присваивается, а?
Ну, не ругайтесь) В delphi в случае, когда мне не важно какой заголовок окна (не класса окна) пишу Nil , а именно:
FindWindow('XLMAIN', nil);. И ничего страшного не происходит, прога ищет открытые эксели как миленькие. По аналогии решил записать что-то подобное в vba: с Null не прокатило, подставил "". Что в данном случае поделать, FindWindow для моей цели не подойдёт? Следующие мой шаг был закрытие ненужных экселей с использованием WM_CLOSE
...
Рейтинг: 0 / 0
13.11.2017, 08:59
    #39551931
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
JagareЧто в данном случае поделать, FindWindow для моей цели не подойдёт?Подойдёт, наверное... только надо очень хорошо подумать, что искать. Знаешь, сколько окон генерит единственный экземпляр Excel, даже если ни одного файла не открыто, и на экране лишь дефолтное "Книга1"? у-у-у... а ещё они имеют разные классы, и разные имена... а ещё у всех открытых экземпляров главное окно аппликации имеет одно и то же имя, да и класс - чёрта с два ты определишь, кто есть ху. Так что одной функции будет катастрофически мало... а ведь ещё надо будет переварить хендл в PID процесса, который надо закрывать...
...
Рейтинг: 0 / 0
13.11.2017, 09:00
    #39551933
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как закрыть сразу несколько файлов Excel ?
В общем, сдаётся мне, что дешевле будет позакрывать всё, включая себя, и запустить себя по-новой...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как закрыть сразу несколько файлов Excel ? / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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