Excel не отображаются макросы

 

Iunia

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

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

Добрый день
Уже не первый раз как пропадают макросы, все прекрасно работает потом в какой то момент все изчезают в списке через Alt F8. Причем они в файле присутствуют, все макросы видны через Object Browser в отличии от «Alt F8» и прекрасно вызываются через кнопки которые на макро были созданы.
Файл важный поэтому через день делаю копии резевные, так вот при одновременных открытых файлах в проблемном файле макросы не видни а в копии резевной все ок. (то есть с настройками центра безопасности вроде как все правильно)

Данная проблема регулярно проявляется. Так как не понятна причина, файл просто напросто заново создаю, копируя листы и макросы из старого резервного) . Что есть абсолютно неприемлемо, теряются часы работы и нервы (((
Еще на один «сиптом» обратила внимание, если в Object Browser выбрать макро и нажать на знак «?» в проблемном файле выходит такое сообщении:
«Object library invalid or contains references to object definitions that could not be found«

У кого то была  такая проблема?

Спасибо

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

  • Вопрос.xlsm (21.96 КБ)

Изменено: Iunia16.04.2021 17:23:07

 

sokol92

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

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

Выложите пример файла с «пропавшими» макросами. Конфиденциальные данные при этом можно удалить.

 

Iunia

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

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

 

sokol92

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

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

Набрал Alt+F8. Вижу 6 макросов.Что не так?

 

Iunia

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

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

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

Изменено: Iunia16.04.2021 17:53:20

 

Marat Ta

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

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

Какая версия Excel и проверяли файл на другом компьютере?

Изменено: Marat Ta16.04.2021 18:39:21

 

sokol92

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

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

Больного трудно лечить, когда он уже выздоровел. Дождитесь пока файл «испортится», сохраните его, перезагрузите компьютер, откройте файл и, если эффект «невидимых» макросов воспроизводится, выкладывайте на форум. Будем ждать. :)

Кстати, макросы не видны, если файл открывается в режиме защищенного просмотра или применение макросов ограничено параметрами безопасности.

Изменено: sokol9216.04.2021 18:17:01

 

Iunia

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

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

Версия 16,0,13127,21336 64 bit
Проверили на другом компьютере на этой же версии Также не видны как и у меня

 

Marat Ta

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

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

Вот когда прикрепите такой файл на форум (как написали выше) — тогда и будем искать причину.
А сейчас — одни предположения.

 

Iunia

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

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

Так он и приклеплен вверху только у вас работает а у меня нет  

 

sokol92

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

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

Я проверил на версиях 2016 (32-) и 2019 (64-). Макросы видны.

 

Marat Ta

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

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

Проверьте.

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

  • Вопрос.xlsb (15.29 КБ)

Изменено: Marat Ta16.04.2021 18:55:06

 

Iunia

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

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

Марат работает!
что вы изменили?

 

Iunia

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

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

Обнаружила быстрое решение проблемы
Достаточно «вырезать» любой макрос из модуля и тут же его вставить назад и происходит чудо — появляются макросы
Возможно это чудо смогут обьяснить эксперты в экселе )))))

Всем спасибо и хороших выходных без экселя
Юлия

 

Marat Ta

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

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

Просто пересохраните файл в другой формат (с поддержкой макросов). И обратно в свой.

Изменено: Marat Ta17.04.2021 04:47:18

 

Iunia

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

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

 

Pavlick3000

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

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

Iunia, спасибо, добрый человек!

 

Ігор Гончаренко

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

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

#19

05.10.2021 09:51:41

Цитата
Marat Ta написал:
Просто пересохраните файл в другой формат

)
просто нужно не отмахиваться от сообщений, которые вам пишет Excel, даже не пытаясь вникнуть в их содержание
если прочитать о чем пишет Excel, когда вы пытаетесь сохранить файл содержащий макросы в формате не поддерживающем сохранение макросов
и последовать простым шагам, которые описаны в этом же сообщении — все станет на свои места или вы подтвердите, что вам не нужны макросы нажав кнопку ДА и сохранив файл в соотв. формате
без вмешательства (согласия пользователя) ничего не пропадает само по себе

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Еще 5 копеек.

Несколько месяцев назад, если правильно помню, помогло пересохранение в формат .xlsb и обратно. А вот сегодня не помогло. Решение lunia сработало. Спасибо за пост!!!

Чуть поэкспериментировал. Результат экспериментов следующий: вырезание-вставка помогает ТОЛЬКО если меняется список запускаемых программ. Дописывание или удаление внутри существующих ничего не меняет. Зато также помогает вставка новой программы, даже пустой.

Вывод. Видимо, время от времени при сбое сохранения теряется список возможных к запуску программ. А без лишней необходимости VBA редактор пользуется сохраненным списком. Стоит заставить VBA редактор его обновить (что и происходит при удалении какой-то программы или добавлении новой) и он без проблем заполняется и сохраняется заново…

Следствие из третьего закона Чизхолма:
«Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно.»

 

Iunia

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

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

#21

03.02.2022 13:43:20

Верно, происходит по какой-то причине сбой и Excel не видит макросыУ меня такое часто происходит когда одновременно работаю с несколькоми файлами Excel  

Не работают макросы в 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, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.

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

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

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.

Community's user avatar

asked Dec 20, 2016 at 4:18

RFikes's user avatar

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

Vegard's user avatar

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_R's user avatar

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

Borgunit's user avatar

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's user avatar

fernandospr

2,9542 gold badges21 silver badges43 bronze badges

answered Sep 3, 2020 at 12:19

user14214931's user avatar

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

Ashutosh Vyas's user avatar

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

Jayant Kumar jain's user avatar

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.

  • Remove From My Forums
  • Вопрос

  • Сегодня прилетела куча обновлений MS Office (2007, 2010, 2013) после их установки перестали работать макросы в книгах Exel — кнопка макроса «не нажимается». При открытии файла никаких уведомлений о заблокированном
    содержимом нет.

    Даже если принудительно в настройках безопасности разрешить все макросы — ничего не происходит, кнопки макросов по прежнему не нажимаются, никаких уведомлений о заблокированном содержимом нет. Где копать?

    ps: обновления датированы 9 декабря 2014

    • Изменено

      11 декабря 2014 г. 8:19

Ответы

  • Здравствуйте,

    Посмотрите английскую ветку обсуждения данного вопроса, там несколько временных решений 

    Excel 2010 macros does not work after updates 9.Dec.2014

    Станислав: Для Office 2013 — KB2726958


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется как есть, без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если
    они Вам помогли.

    • Изменено
      Elina Lebedeva
      12 декабря 2014 г. 13:09
    • Предложено в качестве ответа
      Nutslyc
      12 декабря 2014 г. 14:15
    • Помечено в качестве ответа
      ЖукMVP, Moderator
      12 декабря 2014 г. 15:00

  • Столкнулся с той же самой проблемой. Нашел решение — может кому пригодится:

    1. Меняем все кнопки ActiveX на кнопки из группы «Элементы управления формы»

    2. Меняем в коде функции, которые висели на кнопках, с Private на Public

    3. Переходим в режим конструктора, правой кнопкой по добавленной кнопке элемента управления формы -> назначить макрос

    4. Далее радуемся жизни и работающему коду.

    P.S. у меня отвалился весь функционал на нескольких проектах. Наши админы были очень рады, когда им пришлось сносить обновления на всех машинах.

    P.P.S. Решение протестировал на 2-х машинах — все заработало без проблем. Хотел пост с картинками, но не дает вставлять картинки)

    • Изменено
      Nutslyc
      12 декабря 2014 г. 7:43
    • Предложено в качестве ответа
      ILYA [ sie ] SazonovModerator
      12 декабря 2014 г. 11:01
    • Помечено в качестве ответа
      ЖукMVP, Moderator
      12 декабря 2014 г. 15:00

Понравилась статья? Поделить с друзьями:
  • Excel не отображаются графики
  • Excel не отображаются границы ячеек
  • Excel не отображаются все слова
  • Excel не отображаются все символы в ячейке excel
  • Excel не отображаются буквы столбцов