|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
Если где-то было, прошу ткнуть носом :) На открытии книги висит показ формы Код: vbnet 1. 2. 3.
А на закрытии формы Код: vbnet 1. 2. 3. 4. 5. 6. 7.
И при повторном открытии книги форма отображается. Однако могут быть и другие открытые файлы которые нежелательно закрывать - меняю Application.Quit на Application.ActiveWorkbook.Close Но теперь при повторном открытии форма не показывается... Какие действия предпринять? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:40 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
КД меняю Application.Quit на Application.ActiveWorkbook.Close Это явная ошибка. Неизвестно, какая книга в этот момент текущая. Следует использовать ThisWorkbook, а заодно явно указывать SaveChanges. PS. Вылечит ли это именно описанную проблему - фиг знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:46 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
Akina, спасибо! Жаль, но это не помогло :( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:15 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
КД теперь при повторном открытии форма не показывается КД Application.EnableEvents = False Т.е. Вы сами перед закрытием отключаете отслеживание событий, в том числе и Workbook_Open. Понятно, что при закрытии всего приложения это свойство восстанавливается, а при закрытии одной лишь книги - нет. Перепишите код так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:24 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
The_Prist, спасибо! Только все равно почему-то не отрабатывает как надо. При закрытии формы через эту процедуру Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
книга закрывается, но в строке формул остается значение ячейки которая была выделена. И при повторном открытии книги форма не показывается. А в окне проекта VBA 2 экземпляра этой книги! При попытке обращения к объекту формы в одном из них выходит ошибка 'Out of memory'. Книга закрывается, но из памяти не выгружается, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 08:13 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
КД в строке формул остается значение ячейки которая была выделена это уже другой вопрос и больше похоже на глюки. Возможно, это следствие как раз того факта, что книга из памяти не выгружается. И здесь сложно сказать что-то наверняка - нужен файл со всеми кодами. Явно где-то Вы не вычищаете объекты или после закрытия формы обращение к ней все-таки идет. Кстати, такие глюки могут наблюдаться при использовании объекта RefEdit - он глючный. Не мешало бы зайти в Tools-References и убедиться, что там нет галочки напротив элемента RefEdit. Если есть - снять, скомпилировать проект(Debug -Compile VBAProject), сохранить книгу. Ну и для пущей убедительности вообще удалить этот элемент со всех форм в проекте и попробовать без них. Чтобы идентифицировать проблему, так сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 08:51 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
RefEdit в References не обнаружен. Прикладываю заархивированный файл. Пароль для входа '111' ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 09:28 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
КД, жуть. Ну вот нафига отключать события и обновление экрана в процедуре закрытия формы, если закрываете книгу с этим кодом ? Выше Вы приводите нам код с ActiveWorkbook, а на деле закрываете ThisWorkbook. Это как бы проблема. Если не хотите выполнять процедуру Workbook_BeforeClose при закрытии формы(если пароль решили не вводить), то делайте флаг, который будет показывать - надо ли выполнять процедуру. Ибо после закрытия книги с кодом дальше код уже не выполняется или глючит. Т.е. вот эта часть: Код: vbnet 1.
уже не выполнится, т.к. книга с этим кодом закрыта . В общем модуле объявляете переменную: Код: vbnet 1.
в форме прописываете: Код: vbnet 1. 2. 3. 4. 5. 6.
а в модуле ЭтаКнига соответственно: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 10:28 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
The_Prist, огромное спасибо! Все заработало. Вы уж простите меня, я же совсем не программист и культуре программирования не учился и учить меня некому. Вот, на коленке иногда ваяю что-то урывками, да слушаю советы на форуме. Вот и все мои "университеты". Соответственно, системных знаний нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 10:40 |
|
Не отрабатывает код без Application.Quit
|
|||
---|---|---|---|
#18+
КД, вы хотя бы знаете о том, что существует культура программирования, уже отлично! ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 10:44 |
|
|
start [/forum/topic.php?fid=61&fpage=6&tid=2171924]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 418ms |
0 / 0 |