这篇文章是关于在不创建链接的情况下安装XLAM的。 (每个人都讨厌链接)。考虑一下琐碎的插件:

    Public Function UDF_HELLO(x)
        UDF_HELLO = "Hello " & x
    End Function

将此代码和其他内容放入模块中,并在 table 面上另存为“Hello.xlam”(而不是默认的excel addins文件夹中)。接下来,在HELLO.XLAM仍处于打开状态时,使用以下公式创建一个新的XLSX工作簿
      =UDF_Hello("world")

在单元格A1中,它仅在该单元格中显示“Hello world”。保存工作簿并退出Excel。现在,如果在没有XLAM的情况下重新打开工作簿,Excel将提示“链接到其他资源...”。无论您单击“更新”还是“不更新”,Excel都会像这样处理单元格A1中的公式:
    ='C:\Documents and Settings\tpascale\Desktop\Hello.xlam'!UDF_Hello("world")

通常,这种“强制链接”是不可取的。在我的计算环境中,有很多临时分析,对我们一起解决当前问题的每个XLAM强加一个安装方案是没有意义的。我只想将XLAM文件分发给用户,并让这些用户在需要时打开它们,而不必担心会导致他们的公式被弄乱的丝毫错误。

问题:

有没有一种方法可以指示Excel永远不要为UDF构造外部链接,而仅在加载UDF时使用UDF,否则返回#VALUE?

最佳答案

我不知道使用.xla/.xlam加载项解决此问题的方法。

但是,.xll加载项不会发生此问题。
这些可以使用Excel 2010 SDK在C中创建,也可以使用免费的Excel-DNA库以托管语言(如VB.NET或C#)创建。

(免责声明:我是Excel-DNA的开发人员。此问题是我使用.xll接口(interface)来制作托管UDF加载项的原因之一。)

关于vba - XLAM/XLA插件: is there a better way?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5722020/

10-12 18:28