加载项-从Excel公式中的UDF中删除加载项路径



我的addin是xla,现在我使用excelDNA,所以它变成了xll,当我打开以前版本的My addin中构建的电子表格时,对于UDF,它显示路径为xla的myUDF。例如"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中删除路径。但这并不理想,因为用户必须打开电子表格,将代码放入电子表格并运行。

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

在内部,Excel为.xla函数存储不同的信息和.xll函数。要想让你与输入到表单作为.xla.中的函数

您还可以通过在.xmlx文件中浏览一下来了解Excel是如何存储这些信息的。

威尔莫特的讨论可能是相关的:http://www.wilmott.com/messageview.cfm?catid=10&threadid=79763对于您的情况,我可以建议添加一个转换宏到你的.xll,并让用户在他们打开尚未转换的电子表格。

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

最新更新