繁体   English   中英

如何使 XLAM UDF 调用可移植?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM