2016-04-28 198 views
2

我有几个excel加载项在打开现有工作簿时无法加载。以下是我在尝试诊断时注意到的一些相关事实和事情:Excel加载项有时不加载

  • 这些是常规的excel加载项,而不是COM加载项。
  • 从程序菜单打开excel时加载项始终会加载。
  • 从电子邮件/共享驱动器/个人驱动器打开工作簿时,加载项不会加载〜10-20%的时间。
  • 我无法一致地复制该问题。有时打开相同的工作簿将加载加载项,有时它不会。
  • 该问题可能与其中包含安装程序的工具包之一相关。 (这个插件背后的想法是它可以发送给用户,并且可以通过打开来安装它,然后,一旦它安装在AddIns文件夹中,当加载项加载时它不再执行任何操作)。

    Private Sub Workbook_Open() 
    
    If Right(ThisWorkbook.Path, 6) <> "AddIns" Then 
    
    Dim blRegister As Boolean 
    Dim ThisAddIn As AddIn 
    
    Application.DisplayAlerts = False 
    On Error Resume Next 
    
    ThisWorkbook.Sheets("Installing").Activate 
    
    Application.AddIns("Toolkit").Installed = False 
    
    ThisWorkbook.SaveAs "Z:\AppData\Microsoft\AddIns\ToolKit.xlam", AccessMode:=xlExclusive, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges, FileFormat:=55 
    
    On Error GoTo 0 
    
    blRegister = Application.RegisterXLL("Z:\AppData\Microsoft\AddIns\ToolKit.xlam") 
    
    Set ThisAddIn = Application.AddIns.Add("Z:\AppData\Microsoft\AddIns\ToolKit.xlam") 
    ThisAddIn.Installed = True 
    
    MsgBox "Thanks for Installing the Toolkit!" 
    ThisWorkbook.Close False 
    
    Application.DisplayAlerts = True 
    
    End If 
    
    End Sub 
    

任何帮助或洞察力将不胜感激。谢谢!

+0

所以你假设“Z:\”总是出现在所有计算机上并且可以访问?通常,AddIns与操作系统(C:\)存储在分区中。 – PatricK

+0

正确,在这种情况下Z:可在所有计算机上访问(相当于C:驱动器) – user3738961

+1

可能需要在SaveAs之前执行更多操作。当AddIns(“Toolkit”)。IsOpen = True',然后是'Application.EnableEvents = False'时,可能需要关闭AddIns(“Toolkit”).Name指的插件工作簿, ThisAddIn.Installed = True',然后在'ThisWorkbook.Close'之前'Application.EnableEvents = True'。事情是,除非每个步骤都使用'Debug.Print',否则无法确定它失败的位置。 – PatricK

回答