似乎当我在XLAM文件中调用UDF时,XLAM文件的路径嵌入在电子表格中。当我从另一台机器(安装了相同的XLAM插件,只安装到不同的路径)打开电子表格时,Excel会抱怨“此工作簿包含指向其他数据源的链接......”这似乎不是一个XLL中的UDF问题。有办法解决这个问题吗?
答案 0 :(得分:2)
这种行为是在Excel中实现Addin UDF的方式的结果。
有三种方法可以缓解这个问题:
使用强制特定路径的安装程序
向XLAM添加一些代码,检查打开的每个工作簿的链接,如果链接是您的XLAM,但是在不同的路径中,它会执行查找和替换以便更正路径。
将XLAM UDF转换为XLL(如果VBA转换为VB.Net并使用Excel DNA或Addin Express制作VB.Net XLL)
答案 1 :(得分:0)
我知道我迟到了十年,但如果你把它放在工作簿中。在你共享的文件上打开代码,它们将需要是 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