|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.07.2009, 15:31 | #1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
excel+vba странности взаимодействия при сохранении книги без макросов
Увадаемые коллеги!
Нигде не смог найти ответа, подскажите, вдруг сталкивались?! При отладке ПО (расчеты в книге, интерфейс - в форме vba) столкнулся с ситуацией, когда компиляция программы и первый сеанс работы проходят без ошибок, а при повторном запуске после выхода из программы с сохранением книги, в процессе работы программы дает ошибку excel (не дебугер vba!) - в стандартном окне с извинениями... Программа объемная. В книге использованы 5 листов, многостраничная форма, более 300 controls. Активация формы из workbook.open, выход - только по спец. клавише (гасится форма, обнуляется ряд данных в книге, книга сохраняется без запроса, закрывается с выходом из exel) И вот если просто открыть книгу, отключив макросы и, ничего не меняя снова сохранить ее через меню - то при последующем открытии уже с макросами все работает без сбоев (до следующего запуска после сохранения книги из программы). Что же происходит при операции сохранения книги, устраняющее ошибку excel? Динамических элементов в книге нет. Я бы тупо воспроизвел автоматически такую операцию, но из vba это не сделаешь. Поделитесь мыслями, пожалуйста |
02.07.2009, 15:48 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Скорее всего, один из встроенных глюков Excel.
Обычно Майкрософт в таких случаях рекомендует поставить последний сервиспак. Кстати, в этом стандартном окне с извинениями есть опция типа "Отправить отчёт в Майкрософт". Вы ей пользовались, или всегда отказывались от отправки отчёта? Если отправить отчёт, в ответ через какое-то время приходит сообщение с рекомендациями. Порой пишут, что эта ошибка им известна, и пофиксена в таком-то сервиспаке. Я тоже раньше часто видел эту ошибку. Потом поставил другую версию Офиса (2003 sp2 после 2003sp1), и теперь у меня Excel вылетает гораздо реже. Лучше сразу поставьте SP3, если он у Вас ещё не установлен (и если у Вас Excel 2003) |
02.07.2009, 16:23 | #3 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
спасибо за оперативную реакцию!
Беда в том, что программа рассчитана на пользователей, которые спецы по технологии, но с трудом ориентируются в ПО (даже с установкой сервиспака проблемы - многие и термина не слышали). На худой конец, придется передавать и сервиспак, и инструкции по его установке, но это крайне нежелательно. Знать бы суть происходящего при сохранении - нашелся бы вариант решить проблему. Чувствую, что при выходе из макроса с сохранением книги надо соблюсти какие-то дополнительные условия, но не соображу какие. Например, ранее не исключил в макросе зависимость старта формы от того, какой лист активирован в книге - была лавина сбоев именно exel, без диагностики со стороны vba. Похоже, что-то такое еще осталось....Чем думаем, то и получается |
02.07.2009, 16:26 | #4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Причина может быть в чём угодно.
Выкладывайте свою программу, посмотрим. Обычно такие проблемы решаются методом исключения - понемногу урезаем код (или количество листов \ строк на них), и смотрим, когда глюк перестанет проявляться. Но в Вашем случае это займёт уйму времени. Придётся искать другой способ. Цитата:
Или придумать другой способ закрытия Excel.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 02.07.2009 в 16:28. |
|
02.07.2009, 17:14 | #5 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Вы правы - убрал выход из эксела и ситуация изменилась:
- если не закрывая приложение запускаю файл двойным щелчком - сбой не возникает - если запускаю его из списка "файл - открыть" - excel почему-то теряет путь к текущей папке (путь используется для открытия файла *.txt из макроса) - ну это другая проблема - если приложение закрыть и потом запустить файл - вместо ошибки exel возникает глухой зависон Пересылать файл пока вряд ли имеет смысл - 1,4 Мб , но главное - не все функции элементов формы отлажены - зря у Вас много времени уйдет. Да и по мелочи косяков много на разных версиях операцинки и эксела выползает - что на них отвлекаться. Но обязательно прибегну к помощи, как добью ее, проклятую, в целом. Спасибо! |
06.07.2009, 12:45 | #6 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
EducatedFool
Попробовал CodeCleaner (v.5) - дает такой же разовый эффект, как и открытие книги без макросов с последующим сохранением. Т.е. Cleaner тоже что-то очищает.... Чем же все-таки отличается сохранение книги вручную без макросов от сохранения ее по команде макроса? |
06.07.2009, 14:02 | #7 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Цитата:
CodeCleaner по окончании очистки сохраняет обработанный файл, при этом VBA-проект НЕ компилируется. Проблема, как мне кажется, вот в чём: Цитата:
|
|||
06.07.2009, 17:22 | #8 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Stack Overflow при сохранении | Shouldercannon | Общие вопросы Delphi | 1 | 20.05.2009 11:46 |
кривая кодировка при сохранении в txt | SarahConner | Общие вопросы Delphi | 7 | 28.04.2009 15:33 |
Автоматический запуск макросов с листа на котором указан перечень макросов с параметрами и без | Neoli | Microsoft Office Excel | 2 | 09.03.2009 14:31 |
Excel без VBA | kwvdr | Microsoft Office Excel | 1 | 26.12.2008 20:11 |
Как запустить макрос при изменении другой книги Excel? | Град | Microsoft Office Excel | 12 | 10.06.2008 10:01 |