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

Вход

Регистрация

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

 

= Мир MS Excel/Обрыв макроса при закрытии другой книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обрыв макроса при закрытии другой книги (Макросы/Sub)
Обрыв макроса при закрытии другой книги
Sobirjon Дата: Понедельник, 24.02.2020, 04:34 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 2 ±
Замечаний: 0% ±

2016
Доброго времени суток всем читателям!
Коротко о сути вопроса:
Есть две книги!
Задача первой (Книга Запуск) книги запускать вторую книгу.
На второй (Книга Файл) книге имеется форма которую надо заполнит (В примере не стал их выкладывать, так как вопрос не о них).
Также две кнопки "Войти" и "Выйти".
Когда нажали "Войти", тогда должна остаться вторая книга (Книга Файл) и закрыться первая (Книга Запуск), с этой задачей макрос справляется.
Когда нажимаем "Выйти", то обе книги должны закрыться. Но почему-то макрос останавливается после закрытия второй книги и первая книга (Книга Запуск) остается открытой, т.е макрос обрывается.

Код первого файла:
[vba]
Код
Private Sub Workbook_Open()
    Workbooks.Open ThisWorkbook.Path & "\Книга Файл.xlsb"
    ThisWorkbook.Close False
End Sub
[/vba]

Код второго файла:
[vba]
Код
Private Sub Workbook_Open()
    UserForm1.Show
End Sub
[/vba]

Код формы во втором файле (Основной файл)
[vba]
Код
Private Sub CommandButton1_Click()
    ThisWorkbook.Close True
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub
[/vba]

Варианты
• Показать форму в запускающем файле не подойдет, есть на то свои причины.
• Application.Quit тоже не подойдет, по причине того что, если открыты еще файлы кроме этих, то они тоже закрываются.
 
Ответить
СообщениеДоброго времени суток всем читателям!
Коротко о сути вопроса:
Есть две книги!
Задача первой (Книга Запуск) книги запускать вторую книгу.
На второй (Книга Файл) книге имеется форма которую надо заполнит (В примере не стал их выкладывать, так как вопрос не о них).
Также две кнопки "Войти" и "Выйти".
Когда нажали "Войти", тогда должна остаться вторая книга (Книга Файл) и закрыться первая (Книга Запуск), с этой задачей макрос справляется.
Когда нажимаем "Выйти", то обе книги должны закрыться. Но почему-то макрос останавливается после закрытия второй книги и первая книга (Книга Запуск) остается открытой, т.е макрос обрывается.

Код первого файла:
[vba]
Код
Private Sub Workbook_Open()
    Workbooks.Open ThisWorkbook.Path & "\Книга Файл.xlsb"
    ThisWorkbook.Close False
End Sub
[/vba]

Код второго файла:
[vba]
Код
Private Sub Workbook_Open()
    UserForm1.Show
End Sub
[/vba]

Код формы во втором файле (Основной файл)
[vba]
Код
Private Sub CommandButton1_Click()
    ThisWorkbook.Close True
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub
[/vba]

Варианты
• Показать форму в запускающем файле не подойдет, есть на то свои причины.
• Application.Quit тоже не подойдет, по причине того что, если открыты еще файлы кроме этих, то они тоже закрываются.

Автор - Sobirjon
Дата добавления - 24.02.2020 в 04:34
Gustav Дата: Вторник, 25.02.2020, 11:53 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2697
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
В примере не стал их выкладывать, так как вопрос не о них

И напрасно не стали! Далеко не каждый захочет сам создавать АЖ 2 книги, населять их макросами и одну еще и формой с двумя кнопками. У меня было настроение - я создал сам и повозился дома. Будь файлы-примере в этой теме, я бы еще сегодня и на работе повозился в минуты перекура. В общем, зря не создали.

Что заметил в ходе упражнений - ThisWorkbook.Close упорно не хочет выполняться два раза подряд с разными книгами, хотя контекст ThisWorkbook своевременно и правильно переключается. Есть смутное соображение, что работают некие защитные "рефлексы" среды выполнения Excel, не позволяющие удалить полностью все контейнеры кода VBA, имеющие отношение к этой кросс-файловой задаче. Т.е. типа хоть один, но должен остаться. Поэтому при клике на кнопке 1 живым остается файл "Книга Запуск" (а по замыслу, как я понял, хотелось, что бы и он закрылся) , а при клике на кнопке 2 - остается живым файл "Книга Файл".


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
В примере не стал их выкладывать, так как вопрос не о них

И напрасно не стали! Далеко не каждый захочет сам создавать АЖ 2 книги, населять их макросами и одну еще и формой с двумя кнопками. У меня было настроение - я создал сам и повозился дома. Будь файлы-примере в этой теме, я бы еще сегодня и на работе повозился в минуты перекура. В общем, зря не создали.

Что заметил в ходе упражнений - ThisWorkbook.Close упорно не хочет выполняться два раза подряд с разными книгами, хотя контекст ThisWorkbook своевременно и правильно переключается. Есть смутное соображение, что работают некие защитные "рефлексы" среды выполнения Excel, не позволяющие удалить полностью все контейнеры кода VBA, имеющие отношение к этой кросс-файловой задаче. Т.е. типа хоть один, но должен остаться. Поэтому при клике на кнопке 1 живым остается файл "Книга Запуск" (а по замыслу, как я понял, хотелось, что бы и он закрылся) , а при клике на кнопке 2 - остается живым файл "Книга Файл".

Автор - Gustav
Дата добавления - 25.02.2020 в 11:53
boa Дата: Вторник, 25.02.2020, 23:23 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
Да, без примера, трудно что-то объяснить, но поробую как и вы "на пальцах"
первая книга у вас запускает вторую и закрывается.
вторая при запуске открывает форму.
потом у вас 2 кода кнопок, 1-й закрывает текушую книгу, второй форму.
макрос останавливается после закрытия второй книги
Что вы еще хотите, если 1-я книга у вас уже закрыта. %)




Сообщение отредактировал boa - Вторник, 25.02.2020, 23:24
 
Ответить
СообщениеДа, без примера, трудно что-то объяснить, но поробую как и вы "на пальцах"
первая книга у вас запускает вторую и закрывается.
вторая при запуске открывает форму.
потом у вас 2 кода кнопок, 1-й закрывает текушую книгу, второй форму.
макрос останавливается после закрытия второй книги
Что вы еще хотите, если 1-я книга у вас уже закрыта. %)

Автор - boa
Дата добавления - 25.02.2020 в 23:23
Pelena Дата: Вторник, 25.02.2020, 23:55 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
и закрывается
в том-то и дело, что не закрывается.
Вот я тут не поленилась, сделала два файла Запуск и Файл для тренировки, но решить не получилось
К сообщению приложен файл: File.xlsm (16.4 Kb) · Zapusk.xlsm (13.2 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
и закрывается
в том-то и дело, что не закрывается.
Вот я тут не поленилась, сделала два файла Запуск и Файл для тренировки, но решить не получилось

Автор - Pelena
Дата добавления - 25.02.2020 в 23:55
boa Дата: Среда, 26.02.2020, 00:27 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
Pelena, Просто сделайте форму не модальной
ShowModal = false
или вызвать так
[vba]
Код
Private Sub Workbook_Open()
UserForm1.Show (0)
End Sub
[/vba]
К сообщению приложен файл: Downloads.7z (23.2 Kb)




Сообщение отредактировал boa - Среда, 26.02.2020, 00:32
 
Ответить
СообщениеPelena, Просто сделайте форму не модальной
ShowModal = false
или вызвать так
[vba]
Код
Private Sub Workbook_Open()
UserForm1.Show (0)
End Sub
[/vba]

Автор - boa
Дата добавления - 26.02.2020 в 00:27
Pelena Дата: Среда, 26.02.2020, 08:43 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Хм, вроде пробовала сделать, только меняла в свойствах. Видимо, что-то не срослось :(
Спасибо!


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеХм, вроде пробовала сделать, только меняла в свойствах. Видимо, что-то не срослось :(
Спасибо!

Автор - Pelena
Дата добавления - 26.02.2020 в 08:43
Sobirjon Дата: Среда, 26.02.2020, 13:01 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 2 ±
Замечаний: 0% ±

2016
И напрасно не стали!

В сообщении имелась ввиду textbox-ы, а сами файлы с формой создавал и прикреплял, только в виде Zip архива.
Видимо, zip архивы не прикрепляются. А я почему-то уверенно как всегда не посмотрев нажал на кнопку создать.
За это прошу прощения, косяк мой согласен.

так как

Выложила, спасибо ей за это огромное!!! Не вижу смысла повторить.

boa
Чудеса hands работает
 
Ответить
Сообщение
И напрасно не стали!

В сообщении имелась ввиду textbox-ы, а сами файлы с формой создавал и прикреплял, только в виде Zip архива.
Видимо, zip архивы не прикрепляются. А я почему-то уверенно как всегда не посмотрев нажал на кнопку создать.
За это прошу прощения, косяк мой согласен.

так как

Выложила, спасибо ей за это огромное!!! Не вижу смысла повторить.

boa
Чудеса hands работает

Автор - Sobirjon
Дата добавления - 26.02.2020 в 13:01
RAN Дата: Среда, 26.02.2020, 14:53 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Можно и без модальной.
К сообщению приложен файл: 2224085.xlsm (13.9 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМожно и без модальной.

Автор - RAN
Дата добавления - 26.02.2020 в 14:53
Sobirjon Дата: Среда, 26.02.2020, 16:49 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 2 ±
Замечаний: 0% ±

2016
RAN Рабочий вариант, беру вооружение, спасибо!
 
Ответить
СообщениеRAN Рабочий вариант, беру вооружение, спасибо!

Автор - Sobirjon
Дата добавления - 26.02.2020 в 16:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обрыв макроса при закрытии другой книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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