XLAM / XLA插件:有更好的方法吗?

| 这篇文章是关于安装XLAM \而不创建链接的。 (每个人都讨厌链接)。考虑一下琐碎的插件:
    Public Function UDF_HELLO(x)
        UDF_HELLO = \"Hello \" & x
    End Function
将此代码以及其他所有内容放入模块中,并在桌面上另存为\“ 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接口来制作托管UDF加载项的原因之一。)     
您可以让他们打开.xla文件,并让Auto_Open过程安装该加载项。 http://www.vbaexpress.com/kb/getarticle.php?kb_id=693 excel关闭后,您可以自己卸载外接程序。
oAddIn.Installed = False
您可以为加载项设置一个设置,以使用户在每次使用后都不会卸载,方法是使用名为Something的工作表,然后将单元格A1等于true或false。 我尚未对此进行测试,但希望它对您有用。     
尽管它不会指示Excel有关外部链接的信息,但这应该可以解决您的问题。我已经通过创建XLAM,将其保存到我的桌面,在Excel加载项中安装它,然后在新工作簿上使用它来进行了测试。 脚步: 保存加载项后,将其关闭。 转到Excel选项->加载项 在“管理”下拉列表中,选择“ Excel加载项”,然后按\'Go \'。 在出现的“插件”对话框中,单击“浏览”,然后导航到 您刚刚创建的加载项。选择它并点击“确定” 如果提示您将外接程序保存在外接程序文件夹中,请选择\'No \'。 如果外接程序文件后缀确实选择“是”,可能会导致错误 与使用的Excel版本不匹配。 您的加载项应显示在“可用的加载项”滚动框中, 选中其框,然后点击“确定” 现在,无论何时打开Excel,您的加载项都应该处于活动状态。 通过打开一个新的工作簿进行测试,然后尝试使用您的UDF。 最好,     
我通常通过以下方法解决此问题: 保存XLA / XLAM文件(当然在“个人”文件夹之外) 在工具-插件中连接到它 在当前的Excel文件中编写伪宏,这些伪宏链接到XLA / XLAM文件中的那些宏/函数。 请参阅我的回复中的详细说明。     

要回复问题请先登录注册