小兔网

默认情况下,Excel VBA中的UDF(用户定义函数不是易失的。仅在函数的任何参数更改时才重新计算它们。挥发性功能每当发生在工作表上的任何单元格计算将被重新计算。让我们看一个简单的例子,进一步说明这一点。

1.打开Visual Basic编辑器,然后单击“插入”,“模块”。

创建一个名为MYFUNCTION的函数,该函数返回所选单元格和该单元格下面的单元格的总和。

2.添加以下代码行:

函数 MYFUNCTION(单元格作为范围)

MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值

结束 函数

3.现在,您可以像使用其他任何Excel函数一样使用此函数。

Excel VBA中的非易失性函数

4.这是一个非易失性功能。非易失性函数仅在函数的任何参数更改时才重新计算。将单元格B2的值更改为8。

函数的参数更改

5.现在将单元格B3的值更改为11。

其他任何单元格更改

说明:工作表上的任何其他单元格发生更改时,不会重新计算非易失性函数。

6.按如下所示更新该函数以使该函数易失:

函数 MYFUNCTION(单元格作为范围)

应用。
可变MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值

结束 函数

7.将单元格B3的值更改为12。

结果:

Excel VBA中的易失函数

注意:您需要再次输入该函数以使其变得不稳定(或通过将光标置于编辑栏中并按Enter进行刷新)。