0

次の不揮発性 UDF があるとします。

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

A1cellを参照してセルに入力しますA2。つまり、次のように入力しますA1

= Twice(A2)  

さらに、A2ランダム関数を入れます。つまり、次のA2ように入れます。

=RAND()  

ここで、シートを再計算すると (たとえば、Shift+を押しF9て)、セルの値A2が変更されますが、参照が変更されても UDF は更新されません。

参照値が変更されたときに、この UDF を自動的に (つまり、 Ctrl+ Alt+を押さずに) 更新するにはどうすればよいでしょうか?F9

4

1 に答える 1

0

volatile 式を参照する Double 引数を指定して Application.Volatile False を使用すると、バグと見なされるものがあります。

Application.Volatile False ステートメントを削除すると、問題なく動作します。

これに関する詳細な議論と原因に関する憶測については、https://fastexcel.wordpress.com/2011/09/05/false-volatility-is-this-a-bug/を参照してください。

于 2015-09-15T10:07:42.200 に答える