提问人:DS_London 提问时间:10/31/2023 更新时间:10/31/2023 访问量:27
将 Application.Volatile 设置为 False 会停止单元格计算,即使输入发生更改也是如此
Setting Application.Volatile to False stops cell calculating even when input changes
问:
我有一个奇怪的问题,阻止我的函数被调用。Application.Volatile False
从有关 Application.Volatile 的 MS 帮助中:
将用户定义的函数标记为易失性函数。易失性函数必须 每当计算发生在 工作表。仅当输入 变量会发生变化。如果此方法不在 用于计算工作表单元格的用户定义函数。
我的VBA功能:
Option Explicit
Public Function AddOne(d As Double) As Double
Application.Volatile False
Debug.Print "AddOne called"
AddOne = d + 1
End Function
我的期望是,只有当输入发生变化时,才会调用 AddOne。d
我有一张纸,其中:
A1 有公式=NOW()
B1 有公式=AddOne(A1)
“计算”模式设置为“自动”。
令我惊讶的是,B1 没有使用 Shift-F9
进行更新我可以看到 A1 中的值发生了变化,但 B1 中的值没有变化(并且 VBA 即时窗口中没有任何内容显示)。
MS 帮助中有一个隐晦的评论:Now()
注意:如果 NOW 函数未按预期更新单元格值 它,您可能需要更改设置,以控制何时 工作簿或工作表重新计算。这些设置可以在 Excel 桌面应用程序的控制面板。
但是什么是 Excel 桌面应用程序的控制面板?
答: 暂无答案
评论