用户定义函数)在Excel VBA不挥发。他们在任何函数的参数更改只能重新计算。每当发生在工作表上的任何单元格计算的一种挥发性功能将被重新计算。让我们来看看一个简单的例子,以更多的解释。

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

创建一个函数调用myFunction的返回所选择的单元的总和与该细胞下面的单元。

2.添加以下代码行:

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

3.现在你可以使用这个功能,就像任何其他Excel函数。

Non-volatile Function in Excel VBA

4.这是一种非易失性的功能。非易失性功能仅在重新计算任何函数的参数变化。细胞B2的值更改为8.

Function’s Argument Changes

5.现在细胞B3的值改为11

Any Other Cell Changes

说明:当在片材上的任何其他小区改变非易失性功能不被重新计算。

6.更新功能如下使功能挥发性:

Function MYFUNCTION(cell As Range)

Application.Volatile

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

7.更改细胞B3的〜12的值

结果:

Volatile Function in Excel VBA

注意:您需要(通过将光标在公式栏,然后按ENTER键或刷新)再次输入功能,使其挥发。