在excel addin中自动注册用户定义的函数

时间:2018-01-22 07:59:04

标签: vba excel-vba user-defined-functions excel

我有一个宏来注册我的用户定义的函数,将它们放在自定义类别和供应描述中,称为AddUDFsToCategory。此宏放在我已安装的加载项的模块中。但是,要使UDF注册,我必须在每次打开Excel时手动运行宏。

我希望在打开Excel时运行此宏,即使没有打开工作簿。我试图在" ThisWorkbook"中使用Workbook_AddinInstall。插件的一部分,

Private Sub Workbook_AddinInstall()
    AddUDFsToCategory
End Sub

但这似乎无法实现任何目标。

如果我尝试将它与Workbook_open一起使用,

Private Sub Workbook_Open()
    AddUDFsToCategory
End Sub

我明白了:

  

"运行时错误' 1004':无法编辑隐藏工作簿上的宏。使用取消隐藏命令取消隐藏工作簿。"

有谁知道怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

您应该可以通过Excel选项菜单注册它。

首先,转到选项,然后点击加载项:

here enter image description here

从这一点开始,您应该可以通过点击“开始”来管理您的加载项。

enter image description here

您还应该尝试在VBE中管理加载项。

打开VBE并点击{{1}}:

enter image description here

在这里,您将找到加载项管理器。选择您的加载项,并确保选中" Load on Startup" 的复选框。

答案 1 :(得分:0)

我发现解决此错误的唯一方法是在尝试注册UDF时强制Excel打开工作簿。

Sub AddUDFsToCategory()
   Dim wbkTemp As Excel.Workbook

   If Application.ActiveWorkbook Is Nothing Then
      Set wbkTemp = Application.Workbooks.Add
   End If

   '/--------------------------------------------\
   ' Code to register your User Defined Functions
   '\--------------------------------------------/

   If Not wbkTemp Is Nothing Then
      wbkTemp.Close False
   End If
End Sub