2011-05-08 78 views
3

我有一个在模块中定义的excel函数,它被称为总共两次作为工作表functon。然而,当我做了shift + f9并在函数上放置了一个断点时,我注意到它被调用了两次以上,大约5次。然而,这个函数并没有在其他地方被调用,除了我上面提到的两个单元之外,它们都是以编程方式或者在任何工作表中。此外,当我在执行命中我的函数时查看调用堆栈时,它只显示我的函数是顶级调用。有关可能导致此问题的任何帮助?谢谢。excel udf被称为太多次

+0

退房'在帮助部分Volatile'方法。对于任何UDF,默认值为“TRUE”,这意味着每当任何**计算发生在同一工作表上时,函数将被调用。也许这就是为什么它会在表单上执行其他计算的时候发射5次? – 2011-05-08 20:15:23

+0

嗨Remnant,不幸的是我的功能还没有被标记为易失性。 – HelpThis 2011-05-08 20:19:04

+0

也许试试'Application.Volatile(False)'? – 2011-05-08 20:23:09

回答

3

这有很多可能的原因,但可能是最有可能的是UDF被称为与未计算单元格:
看到http://www.decisionmodels.com/calcsecretsj.htm的细节

+0

嗨查尔斯,的确,我一直在阅读你引用的那个网站,它的确是相当宝贵的东西:) – HelpThis 2011-05-08 22:06:14