自动重新评估非易失性UDF

时间:2015-09-15 08:11:28

标签: excel excel-vba udf vba

说,我们有以下非易失性UDF:

Function Twice(ByRef x As Double) As Double
    Application.Volatile False
    Twice = 2 * x
End Function

我们在参考单元格A1的单元格A2中输入,即在我们放置的A1中输入:

= Twice(A2)  

此外,在A2中我们放置了随机函数,即我们放置的A2

=RAND()  

现在,如果我们重新计算工作表(例如,按 Shift + F9 ),单元格A2中的值将会改变,但是即使UDF的引用发生了变化,UDF也不会更新。

当参考值发生变化时,我们如何自动更新UDF(即不按 Ctrl + Alt + F9 )?

1 个答案:

答案 0 :(得分:0)

当你将Application.Volatile False与引用易变公式的Double参数一起使用时,我认为存在一个错误。

如果删除Application.Volatile False语句,则可以正常工作。

参见https://fastexcel.wordpress.com/2011/09/05/false-volatility-is-this-a-bug/ 有关此事的更详细讨论和关于原因的推测。