|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.01.2010, 16:24 | #1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
как защититься от ESC при сохранении книги?
Здравствуйте все!
После закрытия формы идет длительный процесс сохранения книги с последующим ее закрытием. Если в это время нажать ESC, происходит непредсказуемый сбой с выходом в дебугер vba. Ни Form_KeyPress ни OnKey не работают.... Более того, отключение ESC и при работающей проге не удается - событие нажатия клавиши отлавливается только при "холостом" нажатии (например, выводится соответствующее сообщение), а если нажимаем при вводе значений в ячейку или в форму - ESC работает как положено и событие не отлавливается -( Преодолима ли ситуация? |
29.01.2010, 16:55 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
application.EnableCancelKey=xlDisabled не помогает?
Не увидев файла с кодом, сложно что-либо посоветовать... |
29.01.2010, 17:14 | #3 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Попробовал, не помогает
Код простой: Sub Start() 'запуск формы UserForm.Show With Application .OnKey "%{F11}", "" .EnableCancelKey = xlDisabled End With End Sub Код - в надстройке |
01.02.2010, 12:38 | #4 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Во вложении - в файле Excel - вставлены в Workbook_Activate и команда application.EnableCancelKey=xlDisab led и OnKey (формирует сообщение при нажатии клавиши Esc). Запускайте файл из родной папки, не стирая Data.txt - это просто демо-пример, его алгоритм к делу не относится
Если клавиша нажимается без входа в ячейку листа - событие отлавливается, но стоит зайти внутрь ячейки - пропадает (при этом Esc работает, как положено, т.е отменяет изменения) После выхода из ячейки - событие снова отлавливается. А ведь события книги при этом не менялись? Более того, если выйти из программы при наличии хотя бы еще одного открытого файла Excel (выход - через клавишу ВЫХОД формы, при этом закрывается и форма и книга без сохранения) и нажать Esc в незакрытом листе - мой файл снова запускается! И после его открытия сразу идет сообщение о нажатии клавиши..... Совсем непонятно, по каким событиям эту клавишу ловить??? |
02.02.2010, 16:20 | #5 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Вроде как и сам допер...
Спасибо, EducatedFool за участие, а то опять больше диалог самого с собой
Прочитал, что команда OnKey не действует при вводе данных в ячейку листа и при работе с элементами управления формы! При этом Esc действует, как ей положено, а, допустим, Alt+F11 просто «молчит» (остальные сочетания, видимо, надо проверять специально) Касательно application.EnableCancelKey=xlDisab led , так судя по справке ее надо повторять каждый раз при вызове процедуры. При неактивном Excel и при отсутствии выполняемого кода ОНО автоматом возвращается в xlInterrupt Особенно непредсказуемые ситуации при наличии нескольких открытых файлов Excel. Если кого заинтересует - см. вложение (не удаляйте Data.txt из текущей папки - это исходные данные). Там еще синхронизация видимости формы с видимостью других открытых книг (ShowModal = False) Если мне хочется услышать умные речи, я просто начинаю говорить С уважением |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как защититься от взлома почты и что делать при её взломе??? | alex(21) | Безопасность, Шифрование | 43 | 25.09.2014 17:36 |
Ошибка при сохранении БД | Xeon332 | Помощь студентам | 2 | 05.01.2010 17:00 |
Ошибки при сохранении | Alex19789 | Microsoft Office Excel | 6 | 16.10.2009 12:39 |
Макрос при сохранении | Полина Л. | Помощь студентам | 0 | 14.09.2009 16:30 |
excel+vba странности взаимодействия при сохранении книги без макросов | alvazor | Microsoft Office Excel | 7 | 06.07.2009 17:22 |