答案1
根据 Sean Cheshire 与 Michaels 的回答的链接:
“我在 JKP 应用程序开发服务上找到了一个由 Laurent Longre 最初发现的示例。下面解释了一个注意事项:
这种技巧方法的缺点是,实际上需要在所使用的 dll 中重新注册一个函数,而任何程序都可能使用该函数。
http://www.jkp-ads.com/Articles/RegisterUDF01.asp
此解决方案仅注册/取消注册 UDF,但用户仍必须将工作簿保存为 .xlam 并安装插件。我使用以下代码自动将当前工作簿安装为 Excel 插件(如果您要更新插件,则需要添加一些错误捕获以确定插件是否已安装)。
'将当前工作簿保存为 .xlam 文件
sFile = Application.LibraryPath & "\" & "name_of_addin" & ".xlam"
ThisWorkbook.SaveAs sFile, 55
ThisWorkbook.IsAddin = True'添加临时工作簿
工作簿.添加'安装插件
设置 oAddin = AddIns.Add(sFile , False)
oAddin.Installed = True'关闭临时工作簿
Workbooks(Workbooks.Count).Close
MsgBox ("安装成功。请关闭 Excel 并重新启动。")'关闭工作簿而不保存
工作簿(sFirstFile).关闭 False
该链接仍然有效。