如何以编程方式将 .xlam 插件(作为对象)添加到 vba?
How to programmatically add .xlam addin (as object) to vba?
您好,我正在尝试按照以下方式以编程方式添加参考:How to Add/Remove reference programmatically?
但是,我希望以编程方式添加的参考是 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:"Object required" 行:
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>tools>references.
中标记复选框
有没有人对在参考文献中 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
正如建议的那样:Programatically Install Add-In VBA
希望这仍然能帮助那些面临相同问题的人。
您好,我正在尝试按照以下方式以编程方式添加参考:How to Add/Remove reference programmatically?
但是,我希望以编程方式添加的参考是 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:"Object required" 行:
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>tools>references.
有没有人对在参考文献中 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
正如建议的那样:Programatically Install Add-In VBA
希望这仍然能帮助那些面临相同问题的人。