簡體   English   中英

如何以編程方式向VBA添加.xlam插件(作為對象)?

[英]How to programmatically add .xlam addin (as object) to vba?

嗨,我正嘗試按照以下方式以編程方式添加引用如何以編程方式添加/刪除引用?

但是,我希望以編程方式添加的參考是opensolver.org的.xlam文件。

因此,使用以下代碼:

    Sub AddWS()
  'Create a reference to Windows Script Host, '
  'where you will find FileSystemObject '
  'Reference name: "IWshRuntimeLibrary" '
  'Reference Name in references list: "Windows Script Host Object Model" '
  ReferenceFromFile "C:\Users\path\OpenSolver2.8.5_LinearWin\OpenSolver.xlam"
  End Sub

和功能:

Function ReferenceFromFile(strFileName As String) As Boolean
Dim ref As Object
MsgBox (strFileName)

         'On Error GoTo Error_ReferenceFromFile
         'References.AddFromFile (ref)
         'ref = strFileName
         'vbProj.References.AddFromFile strFileName
         References.AddFromFile (strFileName)
         MsgBox (strFileName)
         ReferenceFromFile = True

Exit_ReferenceFromFile:
         Exit Function

Error_ReferenceFromFile:
         ReferenceFromFile = False
         Resume Exit_ReferenceFromFile
End Function

但我在行上收到對象錯誤424:“需要對象”:

         References.AddFromFile (strFileName)

這是因為我也不知道如何:

一種。 將.xlam文件設置為對象b。 將.xlam文件轉換為.ocx文件,以便將其讀取並添加到引用中。

是否有人對如何從任何隨機位置以編程方式自動將OpenSolver.xlam添加到Microsoft Excel提出任何建議?*

*對我來說,如果我將包含.xlam的文件夾粘貼到:

C:\Program Files (x86)\Microsoft Office\root\Office16\Library

然后手動打開它,但是我需要代碼的用戶也能夠從mac上運行它,而不需要他們在從另一個模塊調用它之前手動添加opensolver作為參考。

如下所述,成功代碼確實將OpenSolver.xlam添加到了引用中,但是我似乎無法以編程方式在vba>工具>引用中選中該復選框。

一旦添加了引用,則在參考中的Opensolver之前會自動標記該復選框的代碼上有任何建議嗎?

@Comintern,你是我今天的英雄! 我花了至少4個小時來嘗試不同的代碼,對出現的問題進行故障排除,並通過簡單的建議就可以找到問題所在,我在兩分鍾之內就找到了所需的有效解決方案! 非常感謝 :)

有效的代碼是:

Private Sub Workbook_Open()

On Error Resume Next
Application.AddIns("OpenSolver").Installed = False
On Error GoTo 0

With Application
    .AddIns.Add "C:\Users\random path\OpenSolver2.8.5_LinearWin\OpenSolver.xlam", False
    .AddIns("OpenSolver").Installed = True
End With

'ThisWorkbook.Close False

End Sub

如建議的那樣:以編程方式安裝外接程序VBA

希望這仍然可以幫助面臨相同問題的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM