Вылетает excel при включении макросов

Не так давно очередной раз столкнулся с ошибками приложения Excel при попытке включения макросов после открытия файлов .xlsm. Вспомнил, что подобные проблемы преследуют пользователей довольно давно, но чаще всего они наблюдались с Excel 2013 и Excel 2016. Характерные особенности этой группы ошибок следующие:

  • Приложение Excel закрывается при открытии файла с макросами (при включенном режиме безопасности Включить все макросы);
  • Ошибка приложения Excel возникает при попытке включить содержимое (нажатии соответствующей кнопки);
  • Ошибка приложения Excel возникает при сохранении файла с макросами;

Ну и по горячим следам очередного инцидента, дабы не откладывать на потом, решил для себя собрать небольшой хаб по ошибкам приложения Excel с последующей модификацией, дабы опять не терять время на поиск информации в Сети и на составление облака причин.
Суть в том, что в процессе открытия файла xlsm, и при отключенных макросах, в верхней части основного окна (над таблицей), высвечивается строка уведомления: ПРЕДУПРЕЖДЕНИЕ СИСТЕМЫ БЕЗОПАСНОСТИ Запуск макросов отключен, с кнопкой включения содержимого (макросов). Как только пользователь её нажимает, Excel попросту аварийно завершается (падает) с ошибкой Программа Microsoft Excel не работает и характерным окном уведомления:

excel ошибка макроса

При этом было замечено, что непосредственно перед возникновением ошибки приложения Excel никаких системных обновлений и обновлений пакета Office не устанавливалось. Возможно, каким-то образом задействованы последние обновления на Office, но прямой связи я не заметил, а подробного исследования проблемы не проводил. При этом зависимости от версии операционной системы (мною лично сбои наблюдались на Windows 10 LTSC и Windows 7 Professional) так же выявлено не было. При анализе аварийного дампа приложения (*.hdmp) обычно можно увидеть подобную информацию исключения (вывод урезан):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

. . .

EXCEPTION_RECORD:  (.exr 1)

ExceptionAddress: 00007ff86a1e05ac (VBE7+0x00000000001405ac)

   ExceptionCode: c0000005 (Access violation)

  ExceptionFlags: 00000000

NumberParameters: 2

   Parameter[0]: 0000000000000001

   Parameter[1]: 0000000000000010

Attempt to write to address 0000000000000010

DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_WRITE

PROCESS_NAME:  EXCEL.EXE

ERROR_CODE: (NTSTATUS) 0xc0000005 <Unable to get error code text>

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 <Unable to get error code text>

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  0000000000000001

EXCEPTION_PARAMETER2:  0000000000000010

WRITE_ADDRESS:  0000000000000010

. . .

обычно это NTSTATUS с кодом c0000005 — Access violation, доступ запрещен. И чаще всего в дампе можно увидеть такой вот стек потока (вывод оптимизирован для улучшения представления):

. . .

STACK_TEXT:  

000000b9`1acfdd00 000001d3`2fb24e90 : 000001d3`5a0e0ef0 00000000`00000000 : VBE7+0x1405ac

000000b9`1acfdd08 000001d3`24c1fe20 : 00000000`00000000 000001d3`2fda9640 : 0x000001d3`2fb24e90

000000b9`1acfdd10 000001d3`6cf35760 : 000001d3`2fda9640 000001d3`045c9b30 : 0x000001d3`24c1fe20

000000b9`1acfdd18 000001d3`5a0e0ef0 : 000001d3`045c9b30 000001d3`2fcbb2b0 : 0x000001d3`6cf35760

000000b9`1acfdd20 00000000`00000000 : 000001d3`2fcbb2b0 000001d3`2fcbb318 : 0x000001d3`5a0e0ef0

. . .

из которого единственное что понятно, так это то, что падение Excel происходит в недрах функций библиотеки vbe7.dll (среда исполнения VBA), подгруженной в адресное пространство процесса. Это указывает на проблемы с обработчиком VBA-скриптов, в контексте Excel чаще именуемых макросами.

НЕРЕШЕННОЕ: при отладке приложений из комплекта MS Office, вы не увидите имен функций в стеке вызовов, поскольку отсутствуют отладочные символы как к основным исполняемым файлам (Excel/Word/Outlook), так и к многочисленным библиотекам. Интересно, есть ли какое-либо решение?

VBA

Так что же такое VBA и для чего он предназначается?

VBA (Visual Basic for Application) — язык макропрограммирования, основанный на языке Visual Basic.

В приложениях, входящих в комплект MS Office, таких как Excel, Word, PowerPoint и Access, VBA используется для автоматизации множества рутинных задач (напр.: повторяющихся однотипных действий), позволяет создавать формы для общения с пользователем и предлагает множество иного богатого функционала. При помощи VBA доступно управление электронной таблицей посредством объектно-ориентированной модели кода/данных, при помощи VBA-кода входные данные таблиц могут быть обработаны и представлены в итоговых (результирующих) таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать, изменять его и управлять расчётами. На выходе VBA проект, используемый в структурах описанных выше приложений (электронные таблицы Excel, презентации PowerPoint, базы Access), компилируется в специальный бинарный исполняемый файл, который размещается внутри файла основного формата. Применительно к Excel это файл vbaProject.bin, который располагается внутри *.xslm-файла в директории /xl, представляющий собой бинарный исполняемый файл проекта, содержащий макрос в откомпилированном (готовом к исполнению) виде.

Наиболее вероятной причиной сбоя является повреждение блока кода VBA, содержащегося в книге Excel. Об истоках этого остается только догадываться, возможно что в структуре .xlsm-файла, в процессе работы с документом, происходят какие-то [непредвиденные разработчиками] изменения, способные приводить блок кода в неработоспособное состояние.

Решение 1: вставка нового листа

Выполните приведенную последовательность действий:

  1. Открываем [проблемный] .xlsm-файл (файл с макросами).
  2. Не нажимаем кнопку Включить содержимое.
  3. Добавляем в книгу Excel новый лист: правая кнопка мыши на ярлыках Лист1/Лист2/Лист3 → ВставитьЛист.
  4. Сохраняем электронную таблицу. Закрываем Excel.
  5. Открываем проблемный файл заново и включаем макросы.

Решение 2: перекомпиляция проекта

Выполните последовательность действий:

  1. Запускаем и открываем новую книгу Excel (не ваш проблемный файл).
  2. Открываем меню Файл — выбираем Параметры — далее открываем Центр управления безопасностью и заходим в Параметры центра управления безопасностью.
  3. В разделе Параметры макросов — выставляем чекбокс Отключить все макросы с уведомлением.
  4. В разделе Надежные расположения — выставляем чекбокс Отключить все надежные расположения.
  5. В разделе Надежные документы — выставляем чекбокс Отключить надежные документы.
  6. Жмем везде OK. Закрываем Excel.

  7. Открываем [проблемный] .xlsm-файл (файл с макросами).
  8. Не нажимаем кнопку Включить содержимое.
  9. Открывает редактор Visual Basic при помощи комбинации клавиш Alt+F11. Либо можно использовать обходной маневр: в настройках включаем меню Разработчик, после этого в появившемся сверху в ленте меню Разработчик выбираем пункт Visual Basic.
  10. В открывшемся окне редактора Visual Basic (VBA редактор) пересохраняем проект: для этого жмем на панели инструментов кнопку Сохранить (изображение дискетки или комбинация Ctrl+S).
  11. Выбираем из меню Debug — выбираем пункт меню Compile VBA Project:

    recompile vba project

  12. Еще раз сохраняем проект кнопкой Сохранить.
  13. Закрываем редактор Visual Basic.

  14. Сохраняем файл Excel через меню Файл — опцию Сохранить (или нажатием на значок дискетки в левом верхнем углу, либо комбинация клавиш Ctrl+S).
  15. Возвращаем все установки безопасности, сделанные на предыдущих шагах (пункты 2-5).
  16. Закрываем xlsm-файл.
  17. Заново открываем [проблемный] файл, в верхней части, в строке статуса — включаем макросы посредством кнопки Включить содержимое.

Решение 3: добавление модуля

Дополнительное решение состоит в том, что бы внести изменения в макрос без перекомпиляции.

  1. Открываем [проблемный] .xlsm-файл (файл с макросами).
  2. Не нажимаем кнопку Включить содержимое.
  3. Открывает редактор Visual Basic (при помощи комбинации клавиш Alt+F11).
  4. Открываем меню Tools → пункт Options. В открывшемся окне переходим на вкладку General и деактивируем чекбокс Compile on Demand:

    compile on demand

    Закрываем окно Опции нажатием клавиши OK.

  5. В левом фрейме окна проекта (Project) спускаемся вниз, находим раздел Modules, жмем на нём правую кнопку → пункт InsertModule:

    vba insert module

  6. Далее просто закрываем окно редактора Visual Basic, сохраняем основной xslm-документ и закрываем Excel.
  7. Заново открываем [проблемный] файл, в верхней части, в строке статуса — включаем макросы посредством кнопки Включить содержимое.
 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

Всем привет.
Кто-то может объяснить что случилось. Включил комп и выполнял ту же функцию в Excel (а именно макросы и удаление лишних вкладок).
Раньше работал макрос, спокойно удалял вкладки. А сейчас виснет и вылетает.
Переустановил программу, все равно вылетает.
Может кто-то сталкивался?
видео по ссылке:

https://yadi.sk/i/XXFdbiKP3UY7_Q

Изменено: konkov8928.02.2020 18:01:39

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Вместо видео, которое может оказаться неинформативным, нужно прикрепить к сообщению  файл. Создайте небольшой пример, отражающий проблему.

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

Добрый день.
таблица по ссылке:

https://yadi.sk/d/mmVG7IWrcIXhzQ

макрос до этого работал
работало даже удаление вкладок

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Вам нужно или помощникам? Или Вам непонятно выражение «прикрепить к сообщению»?
Зайдите в редактор, удалите или закомментируйте всек макросы. По одному раскрывайте и запускайте, так локализуете проблему.

 

Избавьтесь от всех элементов ActiveX и файл перестанет вылетать.  

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

Прошу прощения
во вложении
 

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Куча пустых модулей… Искать Вашу проблему?
Пример должен быть простым, чтобы помогающие не теряли лишнего времени. В каком модуле макрос, при каких действиях возникает проблема?

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

При удалении вкладок возникает проблема

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

У меня не возникает.
Например, удалил new stores без проблем

 

Я уже написал в чем проблема: элементы ActiveX. Попробуйте удалить их все и увидите, что ничего больше не вылетает. Их давно надо заменить чем-то более стабильным, тем более никаких прям хитрых элементов Вы там не используете. Все те, что у Вас можно легко заменить элементами управления форм.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

В примере нет объектов…

 

Вить, лист «Разбивка» буквально набит ими.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Ага, набит… Возможно, но автор выложил пример без такого листа. И. наверное, макросы поудалял (пустые модули). Мол, нате Вам, догадывайтесь…
Я поражаюсь такому подходу. konkov89, выложили пример — так хотя  бы сами проверьте его рабтоспособность!

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

#14

28.02.2020 18:45:16

Цитата
Дмитрий(The_Prist) Щербаков написал:
Вить, лист «Разбивка» буквально набит ими.

А если они нужны в разбивке
Я удалил вообще эту вкладку, но она все равно вылетает. Может дело в другом?  

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

konkov89, то, что Вы называете вкладками, в Excel принято называть листами.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#16

28.02.2020 18:50:10

Пошел, взял книгу с диска. Теперь объекты вижу. Но проблемы с удалением листов нет.

Цитата
konkov89 написал: А если они нужны в разбивке

Замените Проверкой_Данных

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

#17

28.02.2020 18:52:32

Цитата
vikttur написал:
так хотя  бы сами проверьте его рабтоспособность!

так я выложил удалив Active X и запустил, она не работает.
Может дело в компьютере моём? Поэтому я же выложил видео.
В файле есть макрос  
еще раз вложил.
Прошу прощения если что не так.  

Прикрепленные файлы

  • Разбивка постеры 171219 ШхВ.xlsm (81.99 КБ)

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#18

28.02.2020 18:56:41

Цитата
konkov89 написал:
Я удалил вообще эту вкладку,

и ничего не сломалось? :) Тогда хоть напишите какой макрос нужно выполнить, чтобы проблему увидеть: в каком он модуле, как называется, что сделать надо…Или мы должны все Ваши коды пройтись, повыполнять, чтобы проблему Вашу найти и еще придумать решение? Мне лично лень, честное слово. Видео смотреть тоже не буду — это гораздо дольше, чем читать.

Изменено: Дмитрий(The_Prist) Щербаков28.02.2020 18:57:11

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

#19

28.02.2020 19:04:40

Цитата
Дмитрий(The_Prist) Щербаков написал:
и ничего не сломалось?

ну по ходу нет. НО,почему тогда при удалении в ручном режиме листов Excel выкидывает? У других все нормально. Значит в моём компе или в excele что-то не так.
Но что? Просто банальное удаление листа уже выкидывает.  

 

Смотрите. Я сталкивался с такой проблемой уже. Виноваты были именно элементы ActiveX. После их удаления и перекомпиляции проекта VBA(Debug -Compile VBA Project) вылеты прекратились. Компиляции очень важна, т.к. подчищает оставшиеся ссылки на события обработки элементов.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

konkov89

Пользователь

Сообщений: 31
Регистрация: 11.04.2018

Спасибо Дмитрий
но не помогает. Всё равно вылетает((((  

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Давайте по порядку.
Я удалил в ручном режиме все листы файла (остался только один лист) из ссылки в #1 и ничего не вылетело. То же с файлом из #17.
Перезагрузите компьютер, откройте программу MS Excel, наберите Alt+F11. Видите ли Вы какие-либо проекты?

Изменено: sokol9228.02.2020 19:39:16

 

TiDi Di

Пользователь

Сообщений: 1
Регистрация: 19.11.2021

Прошу помощи, сам не справляюсь.
Вылетает Excel при выполнении макроса.

Выписка из журнала событий:

Имя сбойного приложения: EXCEL.EXE, версия: 15.0.4454.1503, метка времени: 0x50b592fe
Имя сбойного модуля: OLEAUT32.dll, версия: 10.0.19041.985, метка времени: 0xfc8f0d5b
Код исключения: 0xc0000005
Смещение ошибки: 0x00001900
Идентификатор сбойного процесса: 0x4360
Время запуска сбойного приложения: 0x01d9018f0c2f3ed2
Путь сбойного приложения: C:PROGRA~2MICROS~2Office15EXCEL.EXE
Путь сбойного модуля: C:WindowsSystem32OLEAUT32.dll

что посоветуете?

____
AutoCAD 2022

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

TiDi Di, а почему в этой тебе, а не создали свою отдельную? У нас на форуме создание своих тем бесплатно
Вам лучше найти в интернете форум по AutoCad (ссылка есть в вашем макросе) и спросить там, так как не у всех у нас установлен AutoCad на компе, чтобы потестировать ваш макрос.

 

doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

#25

26.11.2022 17:09:36

Не верю я, что этот макрос мог начать что то выполнять.
Как минимум не хватает этого

Код
     Set AutoCAD = GetObject(, "AutoCAD.Application.Версия, которая прописана в реестре")
     

.Этот макрос будет работать  в vba автокада

<#0>

 

Александр Моторин

Пользователь

Сообщений: 958
Регистрация: 31.12.2012

#26

27.11.2022 01:45:02

нашел в одном макросе одну процедуру Sub Макрос_СПБ_Проба_6()
запустил — отработала
два раза спросила разрешения удалять листы
За такие макросы руки надо поодбивать макрописцу:
Select, .Activate Зачем их столько?

Спасибо за ссылку, обязательно изучу материал. Я пока только осваиваю VBA и сам понимаю что получилось громоздко. Но давайте по существу.

Сделал костыли…

Дело в том, что MultiPage’и не могут обработать параметры выдаваемые им во время загрузки формы (могут только после загрузки формы), добавил промежуточную форму, вынес обработку MultiPage’ев в отдельную процедуру, вроде как пашет… но это вот как раз не оптимизация кода, а совсем наоборот. Что скажете?

Добавлено через 3 минуты
… а нет, не пашет

Теперь вот:

Сигнатура проблемы:
Имя события проблемы: BEX
Имя приложения: EXCEL.EXE
Версия приложения: 14.0.4756.1000
Отметка времени приложения: 4b9c08e8
Имя модуля с ошибкой: unknown
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 00000000
Смещение исключения: 00000000
Код исключения: c0000005
Данные исключения: 00000008
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049

Дополнительные сведения об этой проблеме:
LCID: 1049
skulcid: 1049

Добавлено через 16 минут

Цитата
Сообщение от chumich
Посмотреть сообщение

назначил ей макрос Start и форма открылась по нажатию. Excel «стоит»

Вы попробуйте закрыть Excel и выполнить Start из другой книги по кнопке с панели инструментов. Погоняйте стартовую форму, поюзайте контролы, может выдаст ошибку. У меня периодически отрабатывает без ошибок. Да и фиг бы с ней, но на работе постоянно открыто 10-15 книг и один такой крит уведёт все книги с собой не сохранив.

Добавлено через 9 минут
Вот кусок дампа или как его там, я тут вообще не шарю…

sharedOfficeSoftwareProtectionPlatformOSPPCEXT.D LL». Невозможно найти или открыть PDB-файл.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64crypt32.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64msasn1.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64WinSCard.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64winhttp.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64webio.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64winmm.dll». Символы загружены.
«EXCEL.EXE» (Win32). Загружено «C:WindowsSysWOW64FM20ENU.DLL». Невозможно найти или открыть PDB-файл.
Поток 0x174c завершился с кодом 0 (0x0).
Необработанное исключение по адресу 0x74A3CB49 в EXCEL.EXE: 0xC0000005: нарушение прав доступа при исполнении по адресу 0x00000000.

Не работают макросы в Excel? Включите их выполнение, добавьте специальный модель с кодом, проверьте версию ОС и Эксель, убедитесь в соответствии пакета приложений, активируйте Майкрософт Офис, снимите блокировку файла, проверьте систему безопасности и применяемые библиотеки. Ниже подробно рассмотрим, в чем могут быть причины подобной неисправности, и какие шаги предпринимать для ее устранения.

Причины

Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:

  1. Функция отключена.
  2. Отключение отслеживания событий.
  3. Устаревшая операционная система.
  4. Несоответствие разработчика пакета офисных приложений.
  5. Устаревшая версия Майкрософт Офис.
  6. Неактивированная версия Excel.
  7. Заблокированный файл.
  8. Неправильные настройки безопасности.
  9. Отсутствие необходимой библиотеки и т. д.

Выше рассмотрены основные причины, почему не удается выполнить макрос в Excel. Все они могут быть решены самостоятельно с помощью приведенных ниже рекомендации. Подробнее на решении вопроса остановимся ниже.

Что делать

Многие пользователи теряются в ситуации, когда не включаются или вообще не работают макросы в Excel. Такая проблема не дает нормально пользоваться приложением и заставляет искать альтернативные варианты.

Включите опцию

Первое, что необходимо сделать — включить функцию для обеспечения ее работоспособности. Здесь многое зависит от версии Эксель.

Если не работают макросы в Excel 2003, сделайте следующие шаги:

  1. Войдите в «Сервис».
  2. Перейдите в раздел «Безопасность».
  3. Кликните «Уровень макросов «Низкий».

В случае, когда не работают макросы в Excel 2007, включите их следующим образом:

  1. Жмите на кнопку «Офис».
  2. Войдите в параметры Excel.
  3. Кликните на «Центр управления безопасности».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Жмите на «Параметры макросов».
  6. Кликните на «Разрешить все …».

В ситуации, когда не работают макросы в Excel 2016, сделайте следующие шаги:

  1. Войдите в раздел «Файл».
  2. Кликните на кнопку «Параметры».
  3. Зайдите в «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры …».
  6. Жмите на «Разрешить все …».

После внесения изменений параметра безопасности перезапустите приложение Excel, а именно закройте его полностью и откройте снова. Лишь после этого изменения вступают в силу.

Добавьте нужный модуль в книгу

Бывают ситуации, когда макросы включены, но не работают в Excel из-за отключения каким-либо элементом отслеживания событий. В таком случае сделайте следующее:

  1. Перейдите в редактор VBA с помощью клавиш Alt+F11.
  2. Вставьте указанный ниже код.

Sub Reset_Events()

Application.EnableEvents = True

End Sub

  1. Для выполнения кода поставьте курсор в любой точке между началом и концом.
  2. Кликните F5.

Проверьте операционную систему

В ситуации, когда не отображаются макросы в Excel, обратите внимание на тип операционной системы. К примеру, Майкрософт Офис, который подходит для Виндовс, на Мак ОС уже работать не будет. Причина в том, что в приложении используются разные библиотеки. Даже если надстройки и функционируют, могут быть сбои в работе. Вот почему при появлении проблем нужно проверить ОС на соответствие.

Обратите внимание на разработчика

Если в Экселе не работают макросы, причиной может быть другой разработчик. Так, пользователи Excel часто применяют OpenOffice или LibreOffice. Эти пакеты созданы на разных языках программирования, которые имеют индивидуальные особенности. Так, если надстройки написаны на Visual Basic for Application, он может не работать в указанных выше офисных приложениях. Вот почему необходимо уточнять, для какого пакета создан макрос / надстройка.

Проверьте версию Майкрософт Офис

В Макрософт Офис 2003 применяются надстройки xla для Excel. В современных версиях расширение поменялось на xlam. Если ставить макросы старого типа в приложения Офис 2007 и больше, никаких трудностей не происходит. Если же вы попытаетесь поставить новую надстройку на старую версию Excel, она зачастую не работает. Вот почему важно обратить внимание на этот параметр при выборе.

Убедитесь в наличии пакета VBA

Одной из причин, почему не запускается макрос в Excel, может быть отсутствие пакета VBA. Для успешного запуска надстройки необходимо, чтобы этот пакет был установлен. Иногда он уже установлен в Офис, но так происходит не всегда. Для проверки жмите комбинацию на Alt+F11. Если после этого появляется Visual Basic, компонент можно считать установленным. В ином случае его нужно поставить. Для этого:

  • Зайдите в «Пуск», а далее «Панель управления / Программы и компоненты».

  • Выберите программу Майкрософт Офис.
  • Жмите на кнопку «Изменить».

  • Запустить файл установки Setup.exe.
  • Кликните на «Добавить или удалить компоненты».
  • Выберите в списке Visual Basic и установите его.

Активируйте Офис

Если в Excel 2007 не работает кнопка «макросы», причиной может быть отсутствие активации приложения. Для этого жмите на кнопку «Активировать» и следуйте инструкции. В большинстве случаев такая опция является платной.

Снимите блокировку файла

Учтите, что документ, полученный с другого ПК / ноутбука, может заблокироваться. Для разблокировки файла нужно нажать ПКМ и в разделе «Общие» кликнуть на «Разблокировать».

 Проверьте библиотеки

В случае, когда параметры макросов не активны в Excel, причиной может быть появление ошибки «Can’t find project or library». При этом, надстройка работает на другом ПК / ноутбуке, а здесь возникают проблемы. Ошибку легко устранить, если в окне, которое идет за сообщением об ошибке, снять отметки в полях Missing. Для вызова окна можно выбрать пункт меню Tools / References.

Проверьте настройки безопасности

В ситуации, когда не работают макросы в Excel, можно добавить надежные расположения или настроить доступ к объектной модели VBA. Для этого в Офис 2007 необходимо сделать следующее:

  1. Войдите в Меню
  2. Кликните на пункт «Параметры».
  3. Жмите на «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры макросов» и «Доверять доступ к объектной модели проектов».

Зная, почему не работают макросы в Excel, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.

В комментариях расскажите, какой из приведенных выше вариантов вам помог, и что еще можно сделать.

Отличного Вам дня!

Понравилась статья? Поделить с друзьями:
  • Вылетает word что это
  • Вылетает excel 2016 при работе
  • Вылетает word при запуске
  • Выключить общий доступ excel
  • Вылетает word на телефоне