Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/закрытие книг excel - Страница 2 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » закрытие книг excel (Макросы/Sub)
закрытие книг excel
Asretyq Дата: Пятница, 16.11.2018, 13:37 | Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
StoTisteg, у меня был макрос, когда получалось надо его отыскать, найду скину код
 
Ответить
СообщениеStoTisteg, у меня был макрос, когда получалось надо его отыскать, найду скину код

Автор - Asretyq
Дата добавления - 16.11.2018 в 13:37
Asretyq Дата: Пятница, 16.11.2018, 13:37 | Сообщение № 22
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
StoTisteg, у меня был макрос, когда получалось надо его отыскать, найду скину код
 
Ответить
СообщениеStoTisteg, у меня был макрос, когда получалось надо его отыскать, найду скину код

Автор - Asretyq
Дата добавления - 16.11.2018 в 13:37
_Boroda_ Дата: Пятница, 16.11.2018, 13:39 | Сообщение № 23
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А если есть Персонал? Или еще невидимки?
[vba]
Код
Sub tt()
    Dim wb As Workbook
    On Error Resume Next
    Application.Workbooks("Файл.xlsm").Close 0 'Закрываем файл "Файл"
    For Each wb In Workbooks 'цикл по открытым книгам
        If wb.Name <> ThisWorkbook.Name Then 'если это не текущая книга
            If Windows(wb.Name).Visible = True Then 'если эта книга видима (невидима, например, книга макросов Персонал)
                ThisWorkbook.Close 0 'закрываем только текущий файл. Дальше макрос не работает
            End If
        End If
    Next wb
    'если все открытые книги, кроме этой, невидимы или открыта только текущая
    ThisWorkbook.Saved = True 'эта книга в текущем сеансе будет закрываться без сохранения
    Application.Quit 'закрываем текущий экземпляр Excel (может быть открыто несколько)
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если есть Персонал? Или еще невидимки?
[vba]
Код
Sub tt()
    Dim wb As Workbook
    On Error Resume Next
    Application.Workbooks("Файл.xlsm").Close 0 'Закрываем файл "Файл"
    For Each wb In Workbooks 'цикл по открытым книгам
        If wb.Name <> ThisWorkbook.Name Then 'если это не текущая книга
            If Windows(wb.Name).Visible = True Then 'если эта книга видима (невидима, например, книга макросов Персонал)
                ThisWorkbook.Close 0 'закрываем только текущий файл. Дальше макрос не работает
            End If
        End If
    Next wb
    'если все открытые книги, кроме этой, невидимы или открыта только текущая
    ThisWorkbook.Saved = True 'эта книга в текущем сеансе будет закрываться без сохранения
    Application.Quit 'закрываем текущий экземпляр Excel (может быть открыто несколько)
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 16.11.2018 в 13:39
Asretyq Дата: Пятница, 16.11.2018, 13:41 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
StoTisteg, у меня был код, надо поискать. Там вроде как получалось, найду сброшу
 
Ответить
СообщениеStoTisteg, у меня был код, надо поискать. Там вроде как получалось, найду сброшу

Автор - Asretyq
Дата добавления - 16.11.2018 в 13:41
StoTisteg Дата: Пятница, 16.11.2018, 13:42 | Сообщение № 25
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Продолжить исполнение кода после закрытия книги с ним? Ну-ну... Ищите и обрящете... Не, я могу написать код, который создаст такую видимость, но зачем? Единственное что мне приходит в голову — макрос-установщик, который при распаковке архива ставит зависимости и самоуничтожается.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеПродолжить исполнение кода после закрытия книги с ним? Ну-ну... Ищите и обрящете... Не, я могу написать код, который создаст такую видимость, но зачем? Единственное что мне приходит в голову — макрос-установщик, который при распаковке архива ставит зависимости и самоуничтожается.

Автор - StoTisteg
Дата добавления - 16.11.2018 в 13:42
StoTisteg Дата: Пятница, 16.11.2018, 13:44 | Сообщение № 26
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, персонал и надстройки — это да, не подумал...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение_Boroda_, персонал и надстройки — это да, не подумал...

Автор - StoTisteg
Дата добавления - 16.11.2018 в 13:44
Asretyq Дата: Пятница, 16.11.2018, 13:44 | Сообщение № 27
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, У вас ексель закрывается с вашим кодом? у меня не закрывается, ладно попробую поискать
 
Ответить
Сообщение_Boroda_, У вас ексель закрывается с вашим кодом? у меня не закрывается, ладно попробую поискать

Автор - Asretyq
Дата добавления - 16.11.2018 в 13:44
Asretyq Дата: Пятница, 16.11.2018, 13:58 | Сообщение № 28
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
нашел код, работает отлично, но дело в этой строке[vba]
Код
Application.Workbooks("Файл.xlsm").Close
[/vba]
то есть если файл один, то закрывается ексель, если более одного, закрывается только текущая книга с макросами, а если вставить эту строку - происходит то что описывалось

[vba]
Код
On Error Resume Next
'Application.Workbooks("Файл.xlsm").Close
Application.DisplayAlerts = False
If Application.Workbooks.Count > 1 Then
ActiveWorkbook.Close
Else
Application.Quit
End If
[/vba]
 
Ответить
Сообщениенашел код, работает отлично, но дело в этой строке[vba]
Код
Application.Workbooks("Файл.xlsm").Close
[/vba]
то есть если файл один, то закрывается ексель, если более одного, закрывается только текущая книга с макросами, а если вставить эту строку - происходит то что описывалось

[vba]
Код
On Error Resume Next
'Application.Workbooks("Файл.xlsm").Close
Application.DisplayAlerts = False
If Application.Workbooks.Count > 1 Then
ActiveWorkbook.Close
Else
Application.Quit
End If
[/vba]

Автор - Asretyq
Дата добавления - 16.11.2018 в 13:58
_Boroda_ Дата: Пятница, 16.11.2018, 13:59 | Сообщение № 29
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Продолжить исполнение кода после закрытия книги с ним? Ну-ну... Ищите и обрящете...

Зря Вы издеваетесь. Не такая уж и проблема написать такой

_Boroda_, У вас ексель закрывается с вашим кодом?
Да, закрывается. Если у Вас нет, то это означает, что кроме того файла, в котором макрос и файла "Файл" у Вас открыты еще какие-то файлы. Насколько я понял Ваше ТЗ, в этом случае нужно закрыть только текуший файл и файл "Файл"


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Продолжить исполнение кода после закрытия книги с ним? Ну-ну... Ищите и обрящете...

Зря Вы издеваетесь. Не такая уж и проблема написать такой

_Boroda_, У вас ексель закрывается с вашим кодом?
Да, закрывается. Если у Вас нет, то это означает, что кроме того файла, в котором макрос и файла "Файл" у Вас открыты еще какие-то файлы. Насколько я понял Ваше ТЗ, в этом случае нужно закрыть только текуший файл и файл "Файл"

Автор - _Boroda_
Дата добавления - 16.11.2018 в 13:59
StoTisteg Дата: Пятница, 16.11.2018, 14:00 | Сообщение № 30
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Тогда так (то же, что у Александра, только через счётчик)[vba]
Код
Application.DisplayAlerts=False
On Error Resume Next
Workbooks("Файл.xlsm").Close
For i=1 to Workbooks.Count
    If Wirkbooks(i).Name<>ThisWorkbook.Name And Windows(Wirkbooks(i).Name).Visible Then Exit For
Next i
If i>Workbooks.Count Then Application.Quit Else ThisWorkbook.Close
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеТогда так (то же, что у Александра, только через счётчик)[vba]
Код
Application.DisplayAlerts=False
On Error Resume Next
Workbooks("Файл.xlsm").Close
For i=1 to Workbooks.Count
    If Wirkbooks(i).Name<>ThisWorkbook.Name And Windows(Wirkbooks(i).Name).Visible Then Exit For
Next i
If i>Workbooks.Count Then Application.Quit Else ThisWorkbook.Close
[/vba]

Автор - StoTisteg
Дата добавления - 16.11.2018 в 14:00
StoTisteg Дата: Пятница, 16.11.2018, 14:03 | Сообщение № 31
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Не такая уж и проблема написать такой
Так я и не говорю, что проблема, просто не очень понимаю, какая в этом практическая ценность, кроме "самоубийства" одноразового кода.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Не такая уж и проблема написать такой
Так я и не говорю, что проблема, просто не очень понимаю, какая в этом практическая ценность, кроме "самоубийства" одноразового кода.

Автор - StoTisteg
Дата добавления - 16.11.2018 в 14:03
Asretyq Дата: Пятница, 16.11.2018, 14:05 | Сообщение № 32
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, да все верно закрыть текущий файл и файл "Файл", если же больше нет книг, то ексель закрывается, я полагаю возможно то, что из "Файла" подгружаются в файл с макросами данные, не уверен, но может такое быть?
 
Ответить
Сообщение_Boroda_, да все верно закрыть текущий файл и файл "Файл", если же больше нет книг, то ексель закрывается, я полагаю возможно то, что из "Файла" подгружаются в файл с макросами данные, не уверен, но может такое быть?

Автор - Asretyq
Дата добавления - 16.11.2018 в 14:05
_Boroda_ Дата: Пятница, 16.11.2018, 14:09 | Сообщение № 33
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Какая связь с закрытием файлов? Ну допустим, что подгружается, и что?

Я не понимаю, что конкретно не получается? В момент попытки закрытия Excel сколько файлов у Вас открыто? Сколько файлов открыто в момент запуска макроса? Макрос только с теми строками, что я написал pдесь http://www.excelworld.ru/forum/10-39862-264092-16-1542364782 или там еще что-то есть?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКакая связь с закрытием файлов? Ну допустим, что подгружается, и что?

Я не понимаю, что конкретно не получается? В момент попытки закрытия Excel сколько файлов у Вас открыто? Сколько файлов открыто в момент запуска макроса? Макрос только с теми строками, что я написал pдесь http://www.excelworld.ru/forum/10-39862-264092-16-1542364782 или там еще что-то есть?

Автор - _Boroda_
Дата добавления - 16.11.2018 в 14:09
Asretyq Дата: Пятница, 16.11.2018, 14:17 | Сообщение № 34
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, конкретно не получается закрыть ексель, все файлы закрываются
до открытия ексель закрыть, полностью, даже через експлорер из процессов закрыл, в момент запуска открыты 0 файлов
запускаю файл с макросами, автоматически подгружается "Файл", соответственно 2 книги открыты, проверял многократно
теперь, закрываю файл с макросами, закрывается "Файл", остается пуское окно открытым, то есть сам ексель, все книги закрыты
связь между файлами - подгрузка базы в файл с макросами из "Файла", по-моему это никак не должно влиять
 
Ответить
Сообщение_Boroda_, конкретно не получается закрыть ексель, все файлы закрываются
до открытия ексель закрыть, полностью, даже через експлорер из процессов закрыл, в момент запуска открыты 0 файлов
запускаю файл с макросами, автоматически подгружается "Файл", соответственно 2 книги открыты, проверял многократно
теперь, закрываю файл с макросами, закрывается "Файл", остается пуское окно открытым, то есть сам ексель, все книги закрыты
связь между файлами - подгрузка базы в файл с макросами из "Файла", по-моему это никак не должно влиять

Автор - Asretyq
Дата добавления - 16.11.2018 в 14:17
Asretyq Дата: Пятница, 16.11.2018, 14:21 | Сообщение № 35
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, у меня тоже все работает, НО, без этой строки [vba]
Код
Application.Workbooks("Файл.xlsm").Close
[/vba]
Дело точно в нем, только проверил, даже взаимосвязи никак не влияют
Дата: Пятница, 16.11.2018, 13:58


Сообщение отредактировал Asretyq - Пятница, 16.11.2018, 14:22
 
Ответить
Сообщение_Boroda_, у меня тоже все работает, НО, без этой строки [vba]
Код
Application.Workbooks("Файл.xlsm").Close
[/vba]
Дело точно в нем, только проверил, даже взаимосвязи никак не влияют
Дата: Пятница, 16.11.2018, 13:58

Автор - Asretyq
Дата добавления - 16.11.2018 в 14:21
_Boroda_ Дата: Пятница, 16.11.2018, 14:24 | Сообщение № 36
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Excel какой? 2007?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеExcel какой? 2007?

Автор - _Boroda_
Дата добавления - 16.11.2018 в 14:24
Asretyq Дата: Пятница, 16.11.2018, 14:27 | Сообщение № 37
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, 2010
скину 2 файла через 5 мин
 
Ответить
Сообщение_Boroda_, 2010
скину 2 файла через 5 мин

Автор - Asretyq
Дата добавления - 16.11.2018 в 14:27
Asretyq Дата: Пятница, 16.11.2018, 14:36 | Сообщение № 38
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
вот они, ослушные файлы своего хозяина)))
К сообщению приложен файл: 111.xlsm(34.2 Kb) · 1949496.xlsm(7.4 Kb)
 
Ответить
Сообщениевот они, ослушные файлы своего хозяина)))

Автор - Asretyq
Дата добавления - 16.11.2018 в 14:36
StoTisteg Дата: Пятница, 16.11.2018, 15:40 | Сообщение № 39
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Asretyq, а теперь внимание вопрос. Не происходит ли так, что Вы выделяете в проводнике несколько файлов, потом открываете их правой кнопкой мыши?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеAsretyq, а теперь внимание вопрос. Не происходит ли так, что Вы выделяете в проводнике несколько файлов, потом открываете их правой кнопкой мыши?

Автор - StoTisteg
Дата добавления - 16.11.2018 в 15:40
Asretyq Дата: Пятница, 16.11.2018, 17:56 | Сообщение № 40
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
StoTisteg, нет, кликаю по самому файлу, в котором макрос. То есть не через контекстное меню. Скинул файлы можете сами проверить, или они у вас норм работают?
 
Ответить
СообщениеStoTisteg, нет, кликаю по самому файлу, в котором макрос. То есть не через контекстное меню. Скинул файлы можете сами проверить, или они у вас норм работают?

Автор - Asretyq
Дата добавления - 16.11.2018 в 17:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » закрытие книг excel (Макросы/Sub)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!