默认情况下,Excel VBA中的UDF(用户定义函数)不是易失的。仅在函数的任何参数更改时才重新计算它们。甲挥发性功能每当发生在工作表上的任何单元格计算将被重新计算。让我们看一个简单的例子,进一步说明这一点。
1.打开Visual Basic编辑器,然后单击“插入”,“模块”。
创建一个名为MYFUNCTION的函数,该函数返回所选单元格和该单元格下面的单元格的总和。
2.添加以下代码行:
函数 MYFUNCTION(单元格作为范围)
MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值
结束 函数
MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值
结束 函数
3.现在,您可以像使用其他任何Excel函数一样使用此函数。
4.这是一个非易失性功能。非易失性函数仅在函数的任何参数更改时才重新计算。将单元格B2的值更改为8。
5.现在将单元格B3的值更改为11。
说明:工作表上的任何其他单元格发生更改时,不会重新计算非易失性函数。
6.按如下所示更新该函数以使该函数易失:
函数 MYFUNCTION(单元格作为范围)
应用。
可变MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值
结束 函数
应用。
可变MYFUNCTION = 单元格值+ 单元格偏移量(1,0)。值
结束 函数
7.将单元格B3的值更改为12。
结果:
注意:您需要再次输入该函数以使其变得不稳定(或通过将光标置于编辑栏中并按Enter进行刷新)。