从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的分配应该直接完成,而不是通过激活工作表。