[英]How to make an XLAM UDF call portable?
似乎当我在 XLAM 文件中调用 UDF 时,XLAM 文件的路径嵌入在电子表格中。 当我从另一台机器(安装了相同的 XLAM 加载项,只是安装到不同的路径)打开电子表格时,Excel 会抱怨“此工作簿包含指向其他数据源的链接......”这似乎不是一个XLL 中 UDF 的问题。 有没有解决的办法?
此行为是在 Excel 中实现 Addin UDF 方式的结果。
有3种方法可以缓解这个问题:
使用强制特定路径的安装程序
向 XLAM 添加一些代码,用于检查每个打开的工作簿的链接,如果链接指向您的 XLAM 但在不同的路径中,它会执行查找和替换,以便更正路径。
将您的 XLAM UDF 转换为 XLL(如果 VBA 转换为 VB.Net 并使用 Excel DNA 或 Addin Express 制作 VB.Net XLL)
我知道我迟到了十年,但如果你把它放在 Workbooks.Open 代码中你正在共享的文件上,它们将需要是 xlsm 文件,请记住这会将公式中的所有外部链接更改为本地插件小路:
Sub AddInExternalLinkFix()
Var = ActiveWorkbook.LinkSources(xlExcelLinks)
Nwname = Application.AddIns.Item("YourAddInName").FullName
If Not IsEmpty(Var) Then
For iCounter = 1 To UBound(Var)
ActiveWorkbook.ChangeLink Name:=Var(iCounter), newname:=Nwname, Type:=xlLinkTypeExcelLinks
Next iCounter
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.