Я делаю добавление Excel. Она состоит из нескольких функций в модуле, как это:Когда устанавливать MacroOptions для Excel Addin
Public Function MyFunctionOne(X As Range, Y As Double) As Double
MyFunctionOne = 1 'Example
End Function
Public Function MyFunctionTwo(X As Range, Y As Double) As Double
MyFunctionTwo = 2 'Example
End Function
Public Function MyFunctionThree(X As Range, Y As Double) As Double
MyFunctionThree = 3 'Example
End Function
Я сохранил все это как .xlam
Excel Addin. Таким образом, эти функции доступны каждый раз, когда я запускаю новый лист распространения.
Недавно я узнал, что могу назначить свои функции категории, что действительно полезно. Это упрощает их использование с помощью мастера функций Excel. Я использую следующий код для присвоения категории:
Public Sub MyRegister()
Application.MacroOptions Macro:="MyFunctionOne", Description:="Returns 1", Category:="My New Category"
Application.MacroOptions Macro:="MyFunctionTwo", Description:="Returns 2", Category:="My New Category"
Application.MacroOptions Macro:="MyFunctionThree", Description:="Returns 3", Category:="My New Category"
End Sub
Теперь, если я вручную запустить макрос, MyRegister
, функции все получить новую категорию, и она работает очень хорошо. Но я не хочу, чтобы вручную запускать макрос каждый раз, когда я запускаю новую таблицу. Мои вопросы: как добавление может делать это автоматически для каждой новой таблицы?
Я попытался положить его в Workbook_Open
в надстройке, как это:
Private Sub Workbook_Open()
Call MyRegister
End Sub
Проблема заключается в том, что она не работает. Всякий раз, когда Excel запускается, я получаю сообщение об ошибке: «Cannot edit a macro on a hidden workbook.» Таким образом, событие Workbook_Open
представляется неправильным местом для этого.
Так что мой вопрос: как я могу запустить макрос MyRegister
в соответствующее время, чтобы назначить мои функции добавления в категории?
Кстати, я действительно не хочу создавать шаблон. Я действительно должен держать это как только и добавить.
Спасибо!