2016-04-28 201 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

回答