Excel 函数 IFERROR 是否易变?

Excel 函数 IFERROR 是否易变?

我有一张相当大的 Excel 表,用于记录我们的高尔夫比赛。为了加快工作表的速度(用于我的旧笔记本电脑),我试图限制自动计算的次数。例如,只有当您进入最后一个洞时才会计算总分(通过添加 IF)。

但是,我的 DirectWindow(由 debug.print 语句提供的窗口)显示每次输入后都会进行大量计算。计算似乎是由以 =IFERROR 开头的函数 (UDF) 启动的。

所以我的问题是:据我所知,IFERROR 不是一个易失性函数,无论如何我都找不到任何证据。但有人有相反的经历吗?

答案1

否 -IFERROR是非挥发性的。我刚刚进行了如下测试:

  1. 将以下 VBA 添加到 Sheet1:

    Private Sub Worksheet_Calculate() MsgBox "Calculating" End Sub

  2. 将单元格 A1 设置为=NA()

  3. 将单元格 B1 设置为 `=IFERROR(A1,"OHNO!")

这会导致显示消息框。但是,在另一个单元格中输入数据才不是

然后我将 A1 改为数字“1”,并出现了消息框。此后在另一个单元格中输入数据没有任何区别。

然后我将其添加到单元格 C1 =NOW()。这导致计算每次我在另一个单元格中输入数据,突出显示我现在添加了一个挥发性公式。

在此处输入图片描述

相关内容