【发布时间】:2011-06-20 16:54:38
【问题描述】:
我的插件是xla,现在我用excelDNA,所以它变成了xll, 当我打开在以前版本的我的插件中构建的电子表格时, 对于 UDF,它显示带有 xla 路径的 myUDF。例如 "C:\Program Files\Installation folder\MyUDFs.xla!MyUDF", 当我单击编辑链接并将源更改为“C:...\MyUDFs.xll”时 我有一个弹出窗口说 “Excel 无法更新此工作簿中的一个或多个链接。要更新链接,请打开所有链接源文件(单击“数据”选项卡上的“编辑链接”)。 确保所有计算均已更新。按 F9" 我点击 OK,然后 MyUDF 的路径从 xla 变为 xll,例如C:\Program Files\Installation 文件夹\MyUDFs.xll!MyUDF 对于客户来说,这将破坏他们在以前版本中构建的所有电子表格(可能是 100+)。 我知道我可以编写一个 VBA 代码来从所有 MyUDF 中删除路径。但这并不理想,因为用户必须打开电子表格并将代码放入电子表格并运行。
我想知道客户是否有更好/更方便的方法来解决问题 谢谢
【问题讨论】:
-
找到了解决方法。我保留具有 VBA 代码的旧 xla 文件来注册 MyUDF。在新的 xll 中,我公开了具有相同签名的相同功能。当用户打开从以前的 Addin 构建的电子表格时(如果安装文件夹未更改),则没有问题。即 MyUDF 显示为 MyUDF,前面没有路径。我也试过这个,我更改了 C# 代码以注册 MyUDF 以从 xla 中的 MyUDF 返回不同的值,并且 helpID 指向来自 xla 的不同页面,看起来 C# 中的版本优先于 xla。我不知道这种方法是否有任何问题。
-
请参阅this question 以获得使用 VBA 参考的答案。
标签: add-in user-defined-functions excel-dna