3

我的插件是xla,现在我使用excelDNA,所以它变成了xll,当我打开在我的插件的以前版本中构建的电子表格时,对于UDF,它显示myUDF的路径为xla。例如“C:\Program Files\Installation folder\MyUDFs.xla!MyUDF”,当我单击编辑链接并将源更改为“C:...\MyUDFs.xll”时,我得到一个弹出窗口,上面写着“Excel 无法更新一个或此工作簿中的更多链接。要更新链接,请打开所有链接源文件(单击“数据”选项卡上的“编辑链接”)。要确保所有计算都已更新。按 F9“我单击“确定”,然后 MyUDF 的路径从xla 到 xll,例如 C:\Program Files\Installation folder\MyUDFs.xll!MyUDF 对于客户,这将破坏他们在以前版本中构建的所有电子表格(可能是 100+)。我知道我可以编写一个 VBA 代码来从所有 MyUDF 中删除路径。

我想知道客户是否有更好/更方便的方法来解决问题谢谢

4

2 回答 2

2

在内部,Excel 存储 .xla 函数和 .xll 函数的不同信息。要创建一个与作为 .xla 中的函数输入到工作表中的函数兼容的 .xll 并不容易。

您还可以通过在 .xmlx 文件中稍微查看一下来了解 Excel 如何存储此信息。

这个 Wilmott 讨论可能是相关的: http: //www.wilmott.com/messageview.cfm? catid=10&threadid=79763 对于你的情况,我可以建议的最好的方法是在你的 .xll 中添加一个转换宏,并让用户按下当他们打开尚未转换的电子表格时的“修复”按钮。

于 2011-06-20T22:55:36.297 回答
0

这是我最后使用的解决方案。我保留了我的 xla 插件,在 xll 中,我使用相同的签名注册了相同的 MyUDF(而几乎相同,可选参数在 xll 中不受支持,但在我的 xla 中使用)并设置 IsHidden = true。因此插入函数列表中只显示了一个 MyUDF。当您输入 =MyUDF 并单击函数向导时,xll 中的版本会显示在函数参数窗口中。在 Excel 2007 中,当我键入 =MyUDF 时,下拉菜单中没有任何功能。在 Excel 2010 中,当我键入 =MyUDF 时,会出现一个下拉菜单。因此,该解决方案在 Excel 2010 中效果更好。

于 2015-06-17T18:57:56.223 回答