[英]How to get VBA excel addin .xlam to replace itself by a remote updated .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.