использовать один макрос в разных файлах Excel - PullRequest
4 голосов
/ 28 февраля 2012

Я написал макрос, который хотел бы использовать в разных файлах Excel, которые имеют почти одинаковую структуру таблицы, но разные данные.

Так можно ли в любом случае просто "включить" мой макрос-скрипт в любой файл Excel?!

Я уже прочитал этот совет , но для меня это звучит как плохая шутка.

Спасибо

Ответы [ 5 ]

8 голосов
/ 28 февраля 2012

Вам необходимо сохранить документ в виде надстройки Excel (.xla) и распространить его.Затем пользователи могут перейти на Tools>Add-ins, чтобы установить надстройку. Им нужно будет перейти к файлу, который вы им отправили, и убедиться, что надстройка отмечена в списке надстроек.Обратите внимание, что надстройки не отображаются в Alt + F8 или в Tools>Macro.Вам нужно сделать меню для этого в вашем коде надстройки.см. этот пост http://spreadsheetpage.com/index.php/tip/creating_custom_menus/

Если вы хотите, чтобы ваш код был доступен во всех ваших книгах, используйте PERSONAL.XLS или Excel 2007-2010 ваш PERSONAL.XLSBфайл.Обычно они хранятся в папке XLSTART в ваших документах и ​​настройках.

Это скрытая рабочая книга, которая открывается при запуске Excel.Код, который вы копируете в эту книгу, доступен во всех книгах, которые вы открыли в Excel.

Самый простой способ сделать это - записать фиктивный макрос, а затем выбрать «Персональную макрокоманду» в «Магазине макроса в выпадающем меню».вниз списка.

Откройте редактор макросов ( ALT + F9 ) и сохраните файл PERSONAL.XLS.написать макрос, например

Public Sub Testing()
    MsgBox "Hey im from Personal.xls"
End Sub

Не забудьте скрыть книгу с именем personal.xls (Window>>Hide).Теперь в любой книге этот макрос доступен.

2 голосов
/ 04 июня 2014

У вас есть два варианта;вы можете

1) включить ваш макрос в ваш personal.xlsb, который будет скрыт, но доступен для вашего использования, или

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

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

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

Проблема решена.

1 голос
/ 04 июня 2014

Самый простой и лучший способ сделать это - создать «командир» XLSM, который содержит макрос, но не содержит данных.Все, что он делает, это открывает указанные файлы Excel и запускает макрос на них.Вы можете либо ввести / вставить имя конкретного файла (ов), вы можете перебрать весь каталог и т. Д. Очень легко запустить макрос в другой книге, чем та, которая фактически содержит этот макрос.Примерно так ниже ... кусок торта.

Sub MultipleFileMacro()

Dim wb As Excel.Workbook
Dim fso As Scripting.FileSystemObject
Dim f As Scripting.File

   Set fso = New Scripting.FileSystemObject
   For Each f In fso.GetFolder("c:\samplefolder").Files
      Set wb = Excel.Workbooks.Open(f)

      MyMacro wb

      wb.Close
   Next f

End Sub
------------
Sub MyMacro(wb As Excel.Workbook)

   'do something here

End Sub
1 голос
/ 28 февраля 2012

Если решение personnal.xls не соответствует вашим потребностям, вы можете просто сохранить макрос (ы) в книгу Excel и попросить пользователей загрузить (открыть) при работе с «другим» документом.
Возможно, вам придется исправить ваш макрос в этом случае. Например: заменить Thisworkbook на Activeworkbook.

0 голосов
/ 28 марта 2017

Если вы хотите использовать макрос в нескольких книгах, преобразуйте его в AddIn или сохраните в Personal.Файл Xlsb ,, и если структура базы данных похожа в других книгах, ваш макрос будет полезен, но всегда помните, что у каждого кода есть определенная задача: 100

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