如何使XLAM UDF调用可移植



似乎当我在XLAM文件中调用UDF时,XLAM文件的路径嵌入在电子表格中。当我从另一台机器(安装了相同的XLAM外接程序,只是安装到不同的路径)打开电子表格时,Excel抱怨"此工作簿包含指向其他数据源的链接……"对于xml中的udf来说,这似乎不是问题。有办法解决这个问题吗?

此行为是插件udf在Excel中的实现方式的结果。

有三种方法可以缓解这个问题:

使用强制指定特定路径的安装程序

向XLAM添加一些代码,该代码检查打开的每个工作簿的链接,如果链接指向XLAM,但在不同的路径中,它会执行查找和替换操作,以便纠正路径。

将XLAM udf转换为xsl(如果VBA转换为VB)。并使用Excel DNA或Addin Express制作VB。净XLL)

我知道我晚了十年,但是如果你把这个放在练习册里。在你共享的文件上打开代码,它们需要是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

最新更新