Запуск внешнего макроса при нажатии кнопки из обычной книги Excel (.xlsx) - PullRequest
0 голосов
/ 12 мая 2011

Проще говоря, мой вопрос заключается в следующем: возможно ли, чтобы кнопка на листе в обычной рабочей книге Excel (.xlsx, а не .xlsm) вызывала макрос в другом файле, в частности, в установленной надстройке Excel (.xlam).

Вот некоторая предыстория того, почему я хочу этого достичь. У меня есть книга, которую многие пользователи должны иметь возможность просматривать, но только некоторые из них должны иметь возможность обновлять ее, заполнив форму на другом листе и вызвав макрос в надстройке. Рабочий лист не должен содержать макросов, чтобы избежать предупреждений безопасности при открытии обычными пользователями. Я могу сделать это с помощью кнопки ленты в надстройке, которую пользователь нажимает, после чего проверяется, открыта ли правильная рабочая книга, заполнена ли форма и т. Д. Перед выполнением кода обновления. Однако интерфейс был бы лучше, если бы кнопка вместо того, чтобы появляться на ленте, была на рабочем листе чуть ниже формы. Поэтому мой вопрос заключается в том, можно ли запускать внешний макрос с помощью нажатия кнопки в книге без макросов.

Ответы [ 2 ]

2 голосов
/ 12 июня 2013

Да, вы можете назначить внешний макрос (который должен быть .xlsm файл) для кнопки без макро-книги ( .xlsx). Для простоты мой макрос xlsm находится в том же каталоге, что и книга xlsx. (Примечание: я использую Excel 2010)

  1. Во-первых, вы должны открыть макрос xlsm в том же экземпляре окна Excel (т.е. не открывать новый экземпляр Excel), чтобы ваша книга xlsx могла видеть / получать к нему доступ.
  2. Щелкните правой кнопкой мыши по книге книги xlsx и выберите «Назначить макрос ...»
  3. Убедитесь, что вы выбрали Макросы в: Все открытые книги
  4. Будут показаны все макросы в открытых рабочих книгах (поэтому важно выполнить шаг 1).
  5. Выберите нужный макрос из списка и нажмите кнопку ОК.
1 голос
/ 12 мая 2011

Я не вижу, как можно выполнить макрос из элемента управления в книге без макросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...