Gre*_*ern 5 excel vba excel-addins excel-udf
有关处理此问题的最佳做法的任何建议?
我编写了一个Excel加载项,它提供了UDF(用户定义的工作表函数).一切都很好,直到一个用户将他的工作簿使用这些函数发送给另一个用户,或者只是尝试在多台计算机上使用工作簿,其中加载项已安装到不同的路径.
即使路径中唯一的区别是驱动器号,当在另一台计算机上打开工作簿时,旧的完整路径将出现在所有UDF前面的公式中,并且公式会返回错误.
解决这个问题的一种方法是搜索和替换工作簿中的所有公式,用空字符串替换路径.然后公式为当前计算机上的加载项路径重置自己.有时我必须进入VBE并运行CalculateFullRebuild以使公式起作用.虽然它有效,但对技术含量较低的用户要求很多,而且对于那些经常移动工作簿的用户来说,经常这样做是很烦人的.
建议?
另外 - COM加载项有这个问题吗?我的加载项是xla.虽然我对此感到好奇,但在这种情况下这是一个没有实际意义的问题,因为COM加载项在Macintosh Excel上不起作用,我需要这个加载项才能跨平台工作.
更新:
根据要求,这是一个截图:
屏幕截图显示了公式http://i62.tinypic.com/axz68n.png中的路径
这个截图显示了如果Fred将加载项放在C:\ Fred的Stuff\Fred的Excel Stuff\MyAddin.xla中,将他的工作簿发送给Martha,后者将相同的加载项放在另一个路径中,例如C: \玛莎的文件\玛莎的Excel文件\ MyAddin.xla,玛莎打开弗雷德发送的文件.
如果Martha删除路径,在公式中只留下"= MyUDF()",Excel将在Martha的路径中找到Martad计算机上的MyAddin.xla(假设她以前在Excel中安装了MyAddin.xla作为加载项) ),并正确解决公式.
这是Excel开发人员需要面对的众多问题之一,并且有一些解决方法,但您选择哪一个将取决于您自己的情况:
http://www.jkp-ads.com/articles/FixLinks2UDF00.asp
如果链接死亡,这里是三个建议方法的摘要: