1

似乎当我在 XLAM 文件中调用 UDF 时,XLAM 文件的路径嵌入在电子表格中。当我从另一台机器(安装了相同的 XLAM 插件,只是安装到不同的路径)打开电子表格时,Excel 会抱怨“此工作簿包含指向其他数据源的链接......”这似乎不是XLL 中的 UDF 存在问题。有没有解决的办法?

4

2 回答 2

2

此行为是在 Excel 中实现 Addin UDF 方式的结果。

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

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

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

将您的 XLAM UDF 转换为 XLL(如果 VBA 转换为 VB.Net 并使用 Excel DNA 或 Addin Express 来制作 VB.Net XLL)

于 2011-10-20T07:52:40.367 回答
0

我知道我迟到了十年,但如果你把它放在 Workbooks 中。在你共享的文件上打开代码,它们将需要是 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
于 2021-02-19T19:42:46.493 回答