如何获得用户定义的函数,以基于电子表格中已更改的数据重新评估自身?
我试着F9和Shift+F9。
唯一可行的方法是使用函数调用编辑单元格,然后按Enter。
Answers:
您应该Application.Volatile
在函数顶部使用:
Function doubleMe(d)
Application.Volatile
doubleMe = d * 2
End Function
然后,只要工作簿发生更改,它将重新评估(如果您的计算设置为自动)。
如果在UDF参数列表中包括对电子表格数据的所有引用,则每当引用数据发生更改时,Excel都会重新计算函数:
Public Function doubleMe(d As Variant)
doubleMe = d * 2
End Function
您也可以使用Application.Volatile
,但这具有使UDF始终重新计算的缺点-即使在不需要时也是如此,因为引用的数据没有更改。
Public Function doubleMe()
Application.Volatile
doubleMe = Worksheets("Fred").Range("A1") * 2
End Function
在Application.Volatile
不重新计算公式以我自己的函数里面工作。我使用以下功能:
Application.CalculateFull
Public Sub UpdateMyFunctions()
Dim myRange As Range
Dim rng As Range
'Considering The Functions are in Range A1:B10
Set myRange = ActiveSheet.Range("A1:B10")
For Each rng In myRange
rng.Formula = rng.Formula
Next
End Sub
Application.Volatile True
。