这是一个简单的示例来解释我要做什么:
Function fun(X As Double)
Worksheets("Sheet1").Activate
Y = Cells(2, "C").Value
fun = X + Y
End Function
因此,如果我更改X
excel工作表中的值,则结果fun
将按预期更改,但是如果更改的值Y
,则不会发生任何变化。我必须X
再次更改,以便函数将获得的新值Y
并计算适当的值。
有没有一种方法可以在此VBA函数中添加代码,因此的结果fun
将随着value的更改而自动更新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的赋值,而不要激活工作表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句