Страницы: 1
RSS
Аварийное закрытие книги .xlsm
 
Добрый день! Есть файл с поддержкой макросов, который выполняет несложные вычисления - массивы, словари и т.д., ничего особенного. Несколько дней он работает нормально, позволяет себя редактировать, все считает как надо, а потом в одно прекрасное утро начинает вести себя неадекватно: сначала открывается, но при попытке открыть редактор VBA зависает и через пару минут аварийно закрывается вместе со всеми другими открытыми книгами. Потом даже открываться перестает, сразу зависает и вырубается. Если открывать в режиме защищенного просмотра, то все нормально. Книги с расширением .xlsx открываются тоже без проблем.
Полностью переустановил Офис (2016) - хватило на 2 дня, потом опять то же самое. В чем может быть причина и как это исправить? Заранее спасибо
 
Проблема  с одним файлом? Не видя кода, сложно что-либо подсказать. Изменяет ли реестр? Может, кушает много памяти...
Закомментировать макросы. Сохранить. Закрыть, открыть книгу. Повторять, по очереди открывая макросы.
 
Цитата
vikttur написал:
Проблема  с одним файлом?
У меня файл с макросами в принципе один, других нет.
Если создать новый .xlsm, то он работает нормально, по крайней мере на текущий момент.
Цитата
vikttur написал:
Изменяет ли реестр?
Нет, абсолютно безобидные макросы по принципу Диапазон ячеек -> массив -> вычисления в памяти с использованием словарей -> новый массив -> диапазон. По памяти тоже немного
Цитата
vikttur написал:
Закомментируйте макросы. По очереди открывайте.
Этого уже сделать не могу, к сожалению, т.к. не открывается ни файл, ни тем более редактор VBA
Изменено: Алексей - 21.09.2018 13:58:06
 
Цитата
Алексей написал: У меня файл с макросами в принципе один, других нет.
А говорят, бедность победили :)

Отключить макросы, открыть, закомментировать код, сохранить, закрыть-открыть книгу. Если не открывается - внутренняя поломка. Открывается - см. сообщение выше.
 
На домашнем компьютере тот же самый файл открывается без проблем. Т.е. проблема существует видимо в контексте конкретной машины.
На машине стоит Windows 10 со всеми последними обновлениями и Офис 2016
Изменено: Алексей - 21.09.2018 14:07:18
 
Цитата
vikttur написал:
Отключить макросы, открыть, закомментировать код, сохранить, закрыть-открыть книгу. Если не открывается - внутренняя поломка. Открывается - см. сообщение выше.
В итоге попробовал скачать файл на другой комп, внести изменения и вернуть обратно. Результаты:
  1. Разорвал связь с внешним файлом и закомментировал макросы - работает.
  2. При разорванной связи раскомментировал макросы - работает.
  3. Оставил связь, закомментировал макросы - работает.
  4. При действующей связи раскомментировал макросы - работает.
Четвертый вариант = файл остался неизменным, просто перегнал его туда-сюда по сети. Как это можно объяснить? Проблема явно не в макросах, скорее в контексте, в котором работает файл.
 
А вот тут уже без пациента затруднительно ставить диагноз
 
vikttur, в любом случае спасибо за комментарии!
 
Цитата
vikttur написал:
А вот тут уже без пациента затруднительно ставить диагноз
Прикрепляю файл, посмотрите, пожалуйста, что с ним не так? Опять перестал открываться редактор VBA на одной из машин. Нажимаю на ленте Visual Basic и все, файл зависает на неограниченно долгое время. Хотя еще вчера тот же самый файл на той же самой машине работал без вопросов.
 
Проблема не воспроизводится
 
Да, у меня на других машинах тоже работает, а на рабочей - ни в какую.
Поэкспериментировал, оказалось, что проблема решается с помощью сохранения. Т.е. копируешь файл на любую другую машину, открываешь, нажимаешь "Сохранить" (даже не внося никаких изменений), копируешь обратно на рабочую машину и все работает, проблемы как не бывало.
Также заметил, что после сохранения без каких-либо очевидных причин размер файла уменьшается с 80 до 56 Кб. Если посмотреть архив, то почти в полтора раза меньше становится модуль с макросами. В общем, если есть какие-то варианты объяснений что происходит, поделитесь, пожалуйста. Не хочется заниматься ритуальным сохранением каждые несколько дней.

 
 
Здравствуйте! Разница в длине файлов объясняется просто. Сохраните "короткий" файл (56К). Затем в редакторе VBE наберите Debug/Compile (Вы переводите проект в откомпилированное состояние). Теперь при сохранении файл станет "длинным".
Попробуйте "почистить" проект. Самый простой путь:
  • Сохранить файл (старый) под другим именем (новый) как книгу Excel (при этом макросы удалятся). Закрыть и открыть вновь старый и новый файлы
  • Перетащить в редакторе VBE все модули из старого файла в новый. Откомпилировать (см. выше) новый файл (для проверки).

  • Сохранить новый файл как "Книгу Excel с поддержкой макросов".

Успехов!
Владимир
Страницы: 1
Наверх