Не работают макросы в Excel? Включите их выполнение, добавьте специальный модель с кодом, проверьте версию ОС и Эксель, убедитесь в соответствии пакета приложений, активируйте Майкрософт Офис, снимите блокировку файла, проверьте систему безопасности и применяемые библиотеки. Ниже подробно рассмотрим, в чем могут быть причины подобной неисправности, и какие шаги предпринимать для ее устранения.
Причины
Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:
- Функция отключена.
- Отключение отслеживания событий.
- Устаревшая операционная система.
- Несоответствие разработчика пакета офисных приложений.
- Устаревшая версия Майкрософт Офис.
- Неактивированная версия Excel.
- Заблокированный файл.
- Неправильные настройки безопасности.
- Отсутствие необходимой библиотеки и т. д.
Выше рассмотрены основные причины, почему не удается выполнить макрос в Excel. Все они могут быть решены самостоятельно с помощью приведенных ниже рекомендации. Подробнее на решении вопроса остановимся ниже.
Что делать
Многие пользователи теряются в ситуации, когда не включаются или вообще не работают макросы в Excel. Такая проблема не дает нормально пользоваться приложением и заставляет искать альтернативные варианты.
Включите опцию
Первое, что необходимо сделать — включить функцию для обеспечения ее работоспособности. Здесь многое зависит от версии Эксель.
Если не работают макросы в Excel 2003, сделайте следующие шаги:
- Войдите в «Сервис».
- Перейдите в раздел «Безопасность».
- Кликните «Уровень макросов «Низкий».
В случае, когда не работают макросы в Excel 2007, включите их следующим образом:
- Жмите на кнопку «Офис».
- Войдите в параметры Excel.
- Кликните на «Центр управления безопасности».
- Войдите в «Параметры центра управления безопасностью».
- Жмите на «Параметры макросов».
- Кликните на «Разрешить все …».
В ситуации, когда не работают макросы в Excel 2016, сделайте следующие шаги:
- Войдите в раздел «Файл».
- Кликните на кнопку «Параметры».
- Зайдите в «Центр управления безопасностью».
- Войдите в «Параметры центра управления безопасностью».
- Кликните на «Параметры …».
- Жмите на «Разрешить все …».
После внесения изменений параметра безопасности перезапустите приложение Excel, а именно закройте его полностью и откройте снова. Лишь после этого изменения вступают в силу.
Добавьте нужный модуль в книгу
Бывают ситуации, когда макросы включены, но не работают в Excel из-за отключения каким-либо элементом отслеживания событий. В таком случае сделайте следующее:
- Перейдите в редактор VBA с помощью клавиш Alt+F11.
- Вставьте указанный ниже код.
Sub Reset_Events()
Application.EnableEvents = True
End Sub
- Для выполнения кода поставьте курсор в любой точке между началом и концом.
- Кликните 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 необходимо сделать следующее:
- Войдите в Меню
- Кликните на пункт «Параметры».
- Жмите на «Центр управления безопасностью».
- Войдите в «Параметры центра управления безопасностью».
- Кликните на «Параметры макросов» и «Доверять доступ к объектной модели проектов».
Зная, почему не работают макросы в Excel, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.
В комментариях расскажите, какой из приведенных выше вариантов вам помог, и что еще можно сделать.
Отличного Вам дня!
Iunia Пользователь Сообщений: 11 |
Добрый день Данная проблема регулярно проявляется. Так как не понятна причина, файл просто напросто заново создаю, копируя листы и макросы из старого резервного) . Что есть абсолютно неприемлемо, теряются часы работы и нервы ((( У кого то была такая проблема? Спасибо Прикрепленные файлы
Изменено: Iunia — 16.04.2021 17:23:07 |
sokol92 Пользователь Сообщений: 4445 |
Выложите пример файла с «пропавшими» макросами. Конфиденциальные данные при этом можно удалить. |
Iunia Пользователь Сообщений: 11 |
|
sokol92 Пользователь Сообщений: 4445 |
Набрал Alt+F8. Вижу 6 макросов.Что не так? |
Iunia Пользователь Сообщений: 11 |
Значит проблема не в файле а в визуализации что ли, не могу понять что не так… я не эксперт в информатике.. может это из области финтастики — не может быть что файл делает автокопию где то внутри себя и потом начинает ссылаться именно на нее и выходит проблема Изменено: Iunia — 16.04.2021 17:53:20 |
Marat Ta Пользователь Сообщений: 440 |
Какая версия Excel и проверяли файл на другом компьютере? Изменено: Marat Ta — 16.04.2021 18:39:21 |
sokol92 Пользователь Сообщений: 4445 |
Больного трудно лечить, когда он уже выздоровел. Дождитесь пока файл «испортится», сохраните его, перезагрузите компьютер, откройте файл и, если эффект «невидимых» макросов воспроизводится, выкладывайте на форум. Будем ждать. Кстати, макросы не видны, если файл открывается в режиме защищенного просмотра или применение макросов ограничено параметрами безопасности. Изменено: sokol92 — 16.04.2021 18:17:01 |
Iunia Пользователь Сообщений: 11 |
Версия 16,0,13127,21336 64 bit |
Marat Ta Пользователь Сообщений: 440 |
Вот когда прикрепите такой файл на форум (как написали выше) — тогда и будем искать причину. |
Iunia Пользователь Сообщений: 11 |
Так он и приклеплен вверху только у вас работает а у меня нет |
sokol92 Пользователь Сообщений: 4445 |
Я проверил на версиях 2016 (32-) и 2019 (64-). Макросы видны. |
Marat Ta Пользователь Сообщений: 440 |
Проверьте. Прикрепленные файлы
Изменено: Marat Ta — 16.04.2021 18:55:06 |
Iunia Пользователь Сообщений: 11 |
Марат работает! |
Iunia Пользователь Сообщений: 11 |
Обнаружила быстрое решение проблемы Всем спасибо и хороших выходных без экселя |
Marat Ta Пользователь Сообщений: 440 |
Просто пересохраните файл в другой формат (с поддержкой макросов). И обратно в свой. Изменено: Marat Ta — 17.04.2021 04:47:18 |
Iunia Пользователь Сообщений: 11 |
|
Pavlick3000 Пользователь Сообщений: 1 |
Iunia, спасибо, добрый человек! |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#19 05.10.2021 09:51:41
) Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
Еще 5 копеек. Несколько месяцев назад, если правильно помню, помогло пересохранение в формат .xlsb и обратно. А вот сегодня не помогло. Решение lunia сработало. Спасибо за пост!!! Чуть поэкспериментировал. Результат экспериментов следующий: вырезание-вставка помогает ТОЛЬКО если меняется список запускаемых программ. Дописывание или удаление внутри существующих ничего не меняет. Зато также помогает вставка новой программы, даже пустой. Вывод. Видимо, время от времени при сбое сохранения теряется список возможных к запуску программ. А без лишней необходимости VBA редактор пользуется сохраненным списком. Стоит заставить VBA редактор его обновить (что и происходит при удалении какой-то программы или добавлении новой) и он без проблем заполняется и сохраняется заново… Следствие из третьего закона Чизхолма: |
|
Iunia Пользователь Сообщений: 11 |
#21 03.02.2022 13:43:20 Верно, происходит по какой-то причине сбой и Excel не видит макросыУ меня такое часто происходит когда одновременно работаю с несколькоми файлами Excel |
Не отображается макрос среди всех открытых книг |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
I am writing VBA macros in excel 2016. Macros I write that have arguments do not show up in the Macro Table, only the ones that have no arguments. Help.
asked Dec 20, 2016 at 4:18
3
Macros that take arguments are not visible in the macro box because there is no point in having them there. If they need arguments to run, they cannot be run from the macro box because there is no way to supply an argument to the macro in question.
Normally, a macro shows up in the macro list when you display the
Macros dialog box (press Alt+F8), unless one of three conditions is
met:
The macro is a function. Functions typically return information,
and they require information to be passed to them. Since running a
macro from the macro list doesn’t allow either of these things to
happen, Excel figures there is no need to list it. User-defined
functions, which are quite useful in Excel, are not displayed in the
Macros dialog box because they are, after all, functions.The macro is
a subroutine with parameters. Excel assumes that since parameters are
necessary, and you cannot provide parameters by choosing the
subroutine from the macro list, there is no need to list it.The subroutine has been declared Private. This means that the subroutine
is only useful to code within the module in which it is declared.
Source.
Depending on your need, a possible workaround is to use a helper-sub like this:
Sub InvisibleMacro(strArg As String)
MsgBox("The passed argument was " & strArg)
' This macro won't be visible in the macro dialog because it can only be called with an argument
End Sub
Sub VisibleMacro()
Call InvisibleMacro("Abc")
' This macro will be visible in the macro dialog because it requires no arguments and is not private.
' It will call the "invisible" macro with a preset argument.
End Sub
You can use InputBox
or the likes if you need the passed argument to be non-static. Of course, depending on what datatype you need to pass as an argument, this approach may be limited and/or require some extra hoops.
answered Dec 20, 2016 at 7:58
VegardVegard
3,5572 gold badges22 silver badges40 bronze badges
3
Obviously if the macro requires parameters they can’t be passed by clicking an icon.
But I have a Sub that only has one Optional parameter and that doesn’t show up in the list either when trying to attach it to an icon in the customized ribbon.
Comment out the full Sub declaration and substitute a line without parameters, attach the macro to an icon, then put back the real line. The icon will still work.
' Temporarily use the parameterless line to set things up, then put
' back the real line. I assume this would crash if the Sub has required
' parameters.
Sub MySub()
' Sub MySub(Optional ByVal MyParm As String)
If MyParm = "" Then MyParm = "No parameter"
MsgBox (MyParm)
End Sub
answered Jan 13, 2018 at 8:22
RIck_RRIck_R
1113 bronze badges
I know this is an older post but I had the same issue. My fix was that I had to open the macros in the VB editor and then they showed up in the macro list. from there I could add them to the ribbon and change the icons. Hope this helps.
answered Mar 19, 2019 at 13:31
The macro is not listed when it has parameters, but knowing the name you should be able to simply write the name and theirs parameters when Excel prompts in the Assign Macro window, using single and double quotes.
The following example will guide you how to do it:
'mymacro "param1"'
'mymacro TRUE, FALSE'
'mymacro "param1","param2"'
fernandospr
2,9542 gold badges21 silver badges43 bronze badges
answered Sep 3, 2020 at 12:19
My problem was that I had defined Macro directly through Visual Basic Editor in Excel and had defined it under «Class Modules» folder instead of «Modules»
Once I moved it into Modules folder, it was visible.
Hope this helps someone.
answered Aug 11, 2022 at 5:09
You probably have made macro as «Function()». To make it visible in macros list, you have to declare it as «Sub()».
answered Dec 20, 2016 at 4:53
1
Perhaps your personal workbook is not opening when you open/create another workbook.
here are the steps you need to make sure are done, in order for your macros to be visible.
1- First place your macros in a file.
2- make sure that your Macros are not «Private Sub»
3- once you placed your macros in the file, then under the view tab click «Hide» ( you do this becuase when your personal workbook opens, it does not the workbook itself)
4- Now, you need to save the workbook with the xlsb or xlsm format and place it in the following start up directory C:UsersYourUserNameAppDataRoamingMicrosoftExcelXLSTART
Replace the YourUsername to your login account name.
5- now you are all set. when you open any workbook, whether new or an existing other workbook, the personal workbook opens but you will not see it, as it is hidden, but all your macros will be showing in the macro section.
Hope this helps.