- Проблема с запуском макросов
- Ошибка приложения Excel при открытии файла с макросами
- Решение 1: вставка нового листа
- Решение 2: перекомпиляция проекта
- Решение 3: добавление модуля
- Что делать если макрос не работает?
- Операционная система
- Разработчик пакета офисных приложений
- Наличие компонентаVBA
- ВерсияMicrosoftOffice
- АктивацияMicrosoft Office
- Снятие блокировки файла
- Система безопасности
- Используемые библиотеки
Проблема с запуском макросов
Столкнулся с такой проблемой на своём домашнем ПК, на рабочем такого не было, но теперь тоже появилось. Значит есть файл Excel, в котором имеются макросы, один записан в объекте workbook, другие в модуле. Так вот, всё работало, но теперь макросы перестали запускаться. При этом настройки безопасности в Excel не изменяли и запуск макросов по-прежнему включен с уведомлением. Открываешь файл, уведомления о запуске нет, макросы не запускаются. Сохраняешь файл под другим именем, открываешь и уведомление появляется и макросы работают, закрываешь, открываешь второй раз и всё, снова ничего не работает и нет уведомления. Что за ХРЕНЬ? Такого никогда не было, поэтому ничего не могу понять, какая падла вредит?
Заранее благодарен за помощь!
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Сохранение листа книги в файле — проблема с защитой листа и привязкой макросов
С толкнулся с такой проблемой при сохранении листа в файле вот код который сохраняет лист в.
Проблема с запуском 1C
такео вот дело, проблема с запуском 1с а точнее подключение к базе на сервере, в чем может.
Проблема с запуском
компьютер новый, ему недели 2 где то начал очень часто зависать при перезагрузке выдает разные.
Проблема с запуском
Приехала мне материнка с процессором, озу, куллер для процессора и видеокарта. Собрал это всё дело.
Спасибо за совет, но к сожалению не помогло. Грешил изначально на Excel 2016, с него всё началось, потом вернулся на 2010, но проблема возникла заново. Теперь открываю любой файл Excel с макросом и при повторном открытии макросы этого файла не работают автоматом. Если макрос назначен на кнопку, то работает, если макрос на событии — нет.
Грешил на антивирус, на вирус, откуда ноги растут не пойму, бред какой-то
Добавлено через 9 минут
На рабочем ПК как-то возникла такая проблема один раз, но после пересохранения вроде не появлялась, Почему вроде? Потому что сменил место работы, а если бы возникла, то оставшиеся работники уже обратились бы. На домашнем установлен Windows 10, на рабочем 7-ка. Какой-то бл. ский мелкософтский глюк, но искать истину, путем переустановки системы и всего прочего очень накладно. Да и может не в этом дело.
Антивирь DrWeb Security Space 12.0. В общем открыл файл с макросом, который с hdd, макрос естественно не запустился, сохранил этот файл с тем же именем через «сохранить как» на флешку. Открываю с флешки первый раз, макрос запускается, закрываю, открываю второй и всё.
Добавлено через 11 минут
Удаляю файл с флешки, открываю снова с HDD и «сохраняю как» на флешку, запускаю уже не работает. Вытаскиваю флешку, вставляю заново, запускаю, макросы не работают. Запускаются только в том случае, если удаляю файл с флешки, вытаскиваю её, снова вставляю и сохраняю на нее файл через «сохранить как» из Excel. Кстати, если открыть файл и не нажимать кнопку «включить макросы», закрыть файл и снова открыть, «то кнопка «включить макросы» появляется снова, стоит раз включить, макрос сработает и при повторном открытии уже ни кнопки, соответственно, ни запуска макроса.
Источник
Ошибка приложения Excel при открытии файла с макросами
Не так давно очередной раз столкнулся с ошибками приложения Excel при попытке включения макросов после открытия файлов .xlsm. Вспомнил, что подобные проблемы преследуют пользователей довольно давно, но чаще всего они наблюдались с Excel 2013 и Excel 2016. Характерные особенности этой группы ошибок следующие:
- Приложение Excel закрывается при открытии файла с макросами (при включенном режиме безопасности Включить все макросы );
- Ошибка приложения Excel возникает при попытке включить содержимое (нажатии соответствующей кнопки);
- Ошибка приложения Excel возникает при сохранении файла с макросами;
Ну и по горячим следам очередного инцидента, дабы не откладывать на потом, решил для себя собрать небольшой хаб по ошибкам приложения Excel с последующей модификацией, дабы опять не терять время на поиск информации в Сети и на составление облака причин.
Суть в том, что в процессе открытия файла xlsm, и при отключенных макросах, в верхней части основного окна (над таблицей), высвечивается строка уведомления: ПРЕДУПРЕЖДЕНИЕ СИСТЕМЫ БЕЗОПАСНОСТИ Запуск макросов отключен , с кнопкой включения содержимого (макросов). Как только пользователь её нажимает, Excel попросту аварийно завершается (падает) с ошибкой Программа Microsoft Excel не работает и характерным окном уведомления:
При этом было замечено, что непосредственно перед возникновением ошибки приложения Excel никаких системных обновлений и обновлений пакета Office не устанавливалось. Возможно, каким-то образом задействованы последние обновления на Office, но прямой связи я не заметил, а подробного исследования проблемы не проводил. При этом зависимости от версии операционной системы (мною лично сбои наблюдались на Windows 10 LTSC и Windows 7 Professional) так же выявлено не было. При анализе аварийного дампа приложения ( *.hdmp ) обычно можно увидеть подобную информацию исключения (вывод урезан):
обычно это NTSTATUS с кодом c0000005 — Access violation, доступ запрещен. И чаще всего в дампе можно увидеть такой вот стек потока (вывод оптимизирован для улучшения представления):
из которого единственное что понятно, так это то, что падение Excel происходит в недрах функций библиотеки vbe7.dll (среда исполнения VBA), подгруженной в адресное пространство процесса. Это указывает на проблемы с обработчиком VBA-скриптов, в контексте Excel чаще именуемых макросами.
Так что же такое VBA и для чего он предназначается?
В приложениях, входящих в комплект MS Office, таких как Excel, Word, PowerPoint и Access, VBA используется для автоматизации множества рутинных задач (напр.: повторяющихся однотипных действий), позволяет создавать формы для общения с пользователем и предлагает множество иного богатого функционала. При помощи VBA доступно управление электронной таблицей посредством объектно-ориентированной модели кода/данных, при помощи VBA-кода входные данные таблиц могут быть обработаны и представлены в итоговых (результирующих) таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать, изменять его и управлять расчётами. На выходе VBA проект, используемый в структурах описанных выше приложений (электронные таблицы Excel, презентации PowerPoint, базы Access), компилируется в специальный бинарный исполняемый файл, который размещается внутри файла основного формата. Применительно к Excel это файл vbaProject.bin , который располагается внутри *.xslm-файла в директории /xl , представляющий собой бинарный исполняемый файл проекта, содержащий макрос в откомпилированном (готовом к исполнению) виде.
Решение 1: вставка нового листа
Выполните приведенную последовательность действий:
- Открываем [проблемный] .xlsm-файл (файл с макросами).
- Не нажимаем кнопку Включить содержимое .
- Добавляем в книгу Excel новый лист: правая кнопка мыши на ярлыках Лист1/Лист2/Лист3 → Вставить → Лист .
- Сохраняем электронную таблицу. Закрываем Excel.
- Открываем проблемный файл заново и включаем макросы.
Решение 2: перекомпиляция проекта
Выполните последовательность действий:
- Запускаем и открываем новую книгу Excel (не ваш проблемный файл).
- Открываем меню Файл — выбираем Параметры — далее открываем Центр управления безопасностью и заходим в Параметры центра управления безопасностью .
- В разделе Параметры макросов — выставляем чекбокс Отключить все макросы с уведомлением .
- В разделе Надежные расположения — выставляем чекбокс Отключить все надежные расположения .
- В разделе Надежные документы — выставляем чекбокс Отключить надежные документы .
- Жмем везде OK . Закрываем Excel.
- Открываем [проблемный] .xlsm-файл (файл с макросами).
- Не нажимаем кнопку Включить содержимое .
- Открывает редактор Visual Basic при помощи комбинации клавиш Alt + F11 . Либо можно использовать обходной маневр: в настройках включаем меню Разработчик , после этого в появившемся сверху в ленте меню Разработчик выбираем пункт Visual Basic .
- В открывшемся окне редактора Visual Basic (VBA редактор) пересохраняем проект: для этого жмем на панели инструментов кнопку Сохранить (изображение дискетки или комбинация Ctrl + S ).
- Выбираем из меню Debug — выбираем пункт меню Compile VBA Project :
Решение 3: добавление модуля
Дополнительное решение состоит в том, что бы внести изменения в макрос без перекомпиляции.
- Открываем [проблемный] .xlsm-файл (файл с макросами).
- Не нажимаем кнопку Включить содержимое .
- Открывает редактор Visual Basic (при помощи комбинации клавиш Alt + F11 ).
- Открываем меню Tools → пункт Options . В открывшемся окне переходим на вкладку General и деактивируем чекбокс Compile on Demand :
Закрываем окно Опции нажатием клавиши OK .
В левом фрейме окна проекта ( Project ) спускаемся вниз, находим раздел Modules , жмем на нём правую кнопку → пункт Insert → Module :
Источник
Что делать если макрос не работает?
Отказ макроса или надстройки от выполнения своих функций имеет ряд причин. Рассмотрим наиболее распространенные из них.
Операционная система
Вплоть до Office 2016 пакет приложений Microsoft Office выпускается в различных версиях, для Windows и для Mac OS. Встроенный в приложения Office язык программирования при этом использует отличающиеся друг от друга библиотеки операционной системы. В связи с этим макрос/надстройка, написанная для работы в приложениях под Windows, может не работать, либо работать некорректно в MacOS. Проверьте операционную систему, для которой разрабатывался макрос/надстройка.
Разработчик пакета офисных приложений
Кроме Microsoft Office, пользователи достаточно часто используют альтернативные пакеты офисных приложений, такие как OpenOffice или LibreOffice. Приложения этих пакетов также имеют встроенные языки программирования, но эти языки отличаются друг от друга. Макросы или надстройки, написанные в Visual Basic for Application в приложениях пакета Microsoft Office, не будут работать в приложениях OpenOffice или LibreOffice. Уточните, для какого пакета офисных программ разработан макрос/надстройка.
Наличие компонента VBA
Для того, чтобы можно было запустить макрос или надстройку в каком-либо приложении пакета Office, необходимо, чтобы с этим пакетом был установлен компонент VBA – встроенный язык программирования Visual Basic for Application. В некоторых версиях Office этот пакет может устанавливаться отдельно. Проверьте, установлен ли этот компонент на компьютере. Нажмите сочетание клавиш Alt+F11, если после этого появляется окно редактора Visual Basic, то компонент установлен. В случае, если компонент отсутствует, его необходимо установить.
Версия Microsoft Office
Microsoft Office 2003 использует надстройки с расширением .xla (для Excel), .dot (для Word) и так далее. В более поздних версиях расширения надстроек изменились: .xlam (для Excel), .dotm (для Word). При установке надстроек старого формата в приложения Office 2007 и выше никаких проблем не происходит, а вот при попытке установить надстройку нового формата в приложения пакета Office 2003, возникает сообщение о том, что надстройки не обнаружены. Убедитесь в том, что используемая надстройка предназначена именно для той версии Office, в которой Вы работаете.
Активация Microsoft Office
Убедитесь в том, что Microsoft Office не требует активации. Проведите активацию, чтобы избежать каких-либо ограничений при использовании приложений.
Снятие блокировки файла
Файл, полученный с другого компьютера или из сети интернет может быть заблокирован. Чтобы разблокировать такой файл, необходимо кликнуть на нем правой кнопкой мыши и на вкладке «Общие» нажать кнопку «Разблокировать».
Система безопасности
Если все вышеизложенное не ответило на вопрос «почему не работает макрос?», то, скорее всего, дело в настройках системы безопасности. Перейдите на страницу https://macros-vba.ru/knigi/vba/nastrojki-sistemy-bezopasnosti и проделайте то, что написано в разделах «Надежные расположения» и «Настройка доступа к объектной модели VBA».
Используемые библиотеки
Еще одна ситуация при которой не работает макрос сопровождается появлением сообщения Can’t find project or library при этом тот же самый макрос может без нареканий работать на другом компьютере. В разных версиях приложений, в которые встроен VBA могут использоваться разные библиотеки, в связи с чем могут возникать подобные ошибки. Ошибку можно устранить, если в окне, которое следует за сообщением об ошибке снять флажки, установленные в пунктах, содержащих слово MISSING.
Это окно также можно вызвать и самостоятельно, если в редакторе VB выбрать пункт меню Tools/References.
Кроме этого не все библиотеки подключаются автоматически. Если на компьютере разработчика макроса или надстройки какая-то библиотека была подключена вручную, затем макрос или надстройка были перенесены на другой компьютер, где эта библиотека не подключена, возникает такая-же ошибка.
Источник