我有一张相当大的 Excel 表,用于记录我们的高尔夫比赛。为了加快工作表的速度(用于我的旧笔记本电脑),我试图限制自动计算的次数。例如,只有当您进入最后一个洞时才会计算总分(通过添加 IF)。
但是,我的 DirectWindow(由 debug.print 语句提供的窗口)显示每次输入后都会进行大量计算。计算似乎是由以 =IFERROR 开头的函数 (UDF) 启动的。
所以我的问题是:据我所知,IFERROR 不是一个易失性函数,无论如何我都找不到任何证据。但有人有相反的经历吗?
答案1
否 -IFERROR
是非挥发性的。我刚刚进行了如下测试:
将以下 VBA 添加到 Sheet1:
Private Sub Worksheet_Calculate() MsgBox "Calculating" End Sub
将单元格 A1 设置为
=NA()
- 将单元格 B1 设置为 `=IFERROR(A1,"OHNO!")
这会导致显示消息框。但是,在另一个单元格中输入数据才不是。
然后我将 A1 改为数字“1”,并出现了消息框。此后在另一个单元格中输入数据没有任何区别。
然后我将其添加到单元格 C1 =NOW()
。这导致计算每次我在另一个单元格中输入数据,突出显示我现在添加了一个挥发性公式。