从Cells.Value获取单元格中的数字时,重新计算VBA中的表格excel

下面是一个简单的例子来解释我想要做什么:

Function fun(X As Double) Worksheets("Sheet1").Activate Y = Cells(2, "C").Value fun = X + Y End Function 

所以,如果我改变Excel里面的值, fun结果会像预期的那样变化,但是如果我改变Y的值,什么都不会发生。 我必须再次改变X ,所以函数会得到Y的新值并计算出合适的值。

有没有在这个VBA函数中添加代码的方法,所以fun的结果会自动更新Y的值?

添加Application.Volatile作为第一行的函数。

 Function fun(X As Double) Application.Volatile 'Worksheets("Sheet1").Activate Dim Y As Long Y = Worksheets("Sheet1").Cells(2, "C").Value fun = X + Y End Function 

Y的分配应该直接完成,而不是通过激活工作表。