Модули рабочей книги Excel, не отображаемые в макросах рабочей книги

#excel #vba

#преуспеть #vba

Вопрос:

У меня есть рабочая книга с поддержкой макросов, которая содержит несколько модулей, каждый модуль содержит несколько макросов. Моя проблема в том, что я открываю список макросов на вкладке разработчик, и никаких макросов для моей книги там больше нет. Когда я открываю VBA, я все еще вижу их там и связываю в дереве с рабочей книгой / проектом. Макросы также по-прежнему находятся в модулях.

Предыстория: сегодня, после небольшого редактирования в одном из макросов, я закрыл VBA, получил запрос о сбросе проекта, я нажал ok. Начались проблемы. Все макросы в книге, которые использовались для отображения в приглашении макросы на вкладке разработчик.

Дерево проекта / рабочей книги со связанными модулями, содержащими макросы; макросы не отображаются в рабочей книге

Комментарии:

1. Есть ли у вас Option Private Module поверх модулей? Если это так, вы можете либо удалить его, либо прокомментировать.

2. Также обратите внимание, что подпрограммы, у которых есть параметры, не отображаются в диалоговом окне макросов. Однако в вашем случае (из изображения) по крайней мере одна подпрограмма не имеет параметров и, следовательно, должна появиться в диалоговом окне (если Option Private Module не объявлена)

3. Спасибо за быстрый ответ. Я проверил модули, и, похоже, в них не введена эта строка.

4. Ваше описание того, как это началось, звучит как коррупция. Попробуйте открыть и восстановить функцию: support.microsoft.com/en-us/office /…

Ответ №1:

Думаю, я понял, в чем проблема. У меня возникла проблема с запуском макроса, для которого я решил восстановить более раннюю версию рабочей книги и сохранить ее поверх оригинала. Ну, макросы по-прежнему были гиперссылками на восстановленную версию рабочей книги, которая имела расширение имени, включающее дату / время, поэтому «принадлежала» этой рабочей книге.

Мое исправление: я щелкнул правой кнопкой мыши по макрообъекту (кнопке), назначил макрос, удалил текст гиперссылки и сохранил только имя макроса. Один за другим все макросы были восстановлены в рабочей книге. 🙂