在安装时添加安装其他管理员将无法打开它们

时间:2013-08-16 12:14:05

标签: vba excel-vba excel-addins excel

我写了一个插件,它在安装时添加了其他插件,因为部署一个Addin比部署一大堆插件更容易。

问题:在Bootloader-Addin的End Sub的{​​{1}}之后,刚从VBE添加/安装的插件消失,并且不再安装。但它们仍然被添加到插件菜单中。

问题:我可以在每台PC上手动安装每个插件,因为它不是一个很大的数字,但这仍然让我觉得我似乎无法找到错误的线路。我很感激您想到的每一个想法,以帮助我解决这个问题。

Bootloader Addin:

Workbook_AddinInstall()

有趣的事情 安装引导加载程序后如果我按Private Sub Workbook_AddinInstall() Const aiCount As Integer = 2 Dim ai As AddIn Dim aiTmp As AddIn Dim i As Integer Dim aiPath As String Dim aiToBeInstalled(1 To aiCount) As String Dim aiInstalled(1 To aiCount) As Boolean aiToBeInstalled(1) = "AddIn1.xla" aiToBeInstalled(2) = "AddIn2.xla" 'AddIn added? For Each ai In AddIns For i = 1 To aiCount If ai.name = aiToBeInstalled(i) Then Set aiTmp = ai aiTmp.Installed = True aiInstalled(i) = True Exit For End If Next i Next ai 'Add not already added AddIns For i = 1 To aiCount If Not aiInstalled(i) Then aiPath = GetDrivePath(volName:="somevolname", excludeDrives:="D") & _ "hidden\" & aiToBeInstalled(i) Set ai = AddIns.Add(aiPath, False) ai.Installed = True End If Next i Set ai = Nothing Set aiTmp = Nothing End Sub ' After "End Sub" the addins are still added but not installed. 运行此Sub,则Sub添加插件就好了。并且表现得像你期望的那样。

修改F5正在安装的插件上没有关键的事情,只对菜单进行了一些更改。看到这一点,这真让我困惑。它的行为就好像插件没有与Workbook_AddinInstall相关联,因此它们不会停留。

结论:这是我可以去的,如果您有任何想法,请告诉我。我目前正致力于解决方法,但我真的想知道为什么这不起作用。

1 个答案:

答案 0 :(得分:0)

您需要通过VB编辑器为当前工作簿项目安装加载项。 .Install()方法将在注册表中注册新的GUID(作为COM对象库),但不会保留工作簿引用..

'//Start Code Snippet 

'--!!-->   This will add the reference to the workbook (on each computer). 
    '-->    if the reference is not already registered it (will/should) take 
    '-->    care of it for you..

Application.VBE.ActiveVBProject.References.AddFromFile :YOUR_FILE_PATH_HERE


'//End Code Snippet 

显然,将:YOUR_FILE_PATH_HERE 替换为插件位置的路径...如果有帮助,请告诉我。如果没有,我会有更多技巧。谢谢,Brian。