我编写了一个提供 UDF(用户定义的工作表函数)的 Excel 加载项。
一切都很顺利,直到一个用户使用这些功能将其工作簿发送给另一位用户,或者只是尝试在多台计算机上使用该工作簿,其中加载项已安装到不同的路径。
即使路径中的唯一区别是驱动器号,当在另一台计算机上打开工作簿时,旧的完整路径会出现在所有 UDF 前面的公式上,并且公式会返回错误。
处理此问题的一种方法是搜索并替换工作簿中的所有公式,用空字符串替换路径。然后,公式会根据当前计算机上的加载项路径自行重置。有时我必须进入 VBE 并运行CalculateFullRebuild 才能使公式发挥作用。尽管它确实有效,但对于技术含量较低的用户来说,要求很高,而且对于那些经常移动工作簿的用户来说,必须经常这样做很烦人。
另外——COM 加载项有这个问题吗?我的加载项是 xla。尽管我对此很好奇,但在本例中这是一个没有实际意义的问题,因为 COM 加载项无法在 Macintosh Excel 上运行,而我需要此加载项才能跨平台工作。
UPDATE:
根据要求,截图如下:
此屏幕截图显示了如果 Fred 将加载项放在 C:\Fred's Stuff\Fred's Excel Stuff\MyAddin.xla 中,将其工作簿发送给 Martha,而 Martha 将相同的加载项放在另一个路径(例如 C:)中,则会发生什么情况: \Martha's Files\Martha's Excel Files\MyAddin.xla,Martha 打开 Fred 发送的文件。
如果 Martha 删除该路径,只在公式中保留“=MyUDF()”,Excel 将在 Martha 的计算机上的 Martha 放置路径中找到 MyAddin.xla(假设她之前已将 MyAddin.xla 作为 Excel 中的加载项安装) ),并正确求解公式。
这是 Excel 开发人员有时需要面对的众多问题之一,并且有一些解决方法,但您选择哪一种将取决于您自己的情况:
http://www.jkp-ads.com/articles/FixLinks2UDF00.asp http://www.jkp-ads.com/articles/FixLinks2UDF00.asp
万一链接失效,这里总结了三种建议的方法:
- 使用固定地点。
- 您无需将 UDF 代码保留在外接程序中,而是创建一个将 UDF 例程复制到使用它的每个工作簿中的工具。
- 将 UDF 重定向到新位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)