刷新Excel VBA函数结果
时间:2020-03-05 18:39:38 来源:igfitidea点击:
有谁知道我如何获得用户定义的函数来重新评估自身(基于电子表格中已更改的数据)?我已经尝试过F9和Shift + F9,但是它们不起作用。唯一可行的方法是使用函数调用编辑单元格,然后按Enter。有任何想法吗?我似乎记得能够做到这一点...
解决方案
回答
好吧,我自己找到了这个。我们可以使用Ctrl + Alt + F9来完成此操作。
回答
我们应该在函数顶部使用Application.Volatile
:
Function doubleMe(d) Application.Volatile doubleMe = d * 2 End Function
然后,只要工作簿发生更改,它将重新评估(如果计算设置为自动)。
回答
有关在Excel中进行计算的F9键盘快捷键的更多信息
- F9重新计算所有打开的工作簿中的所有工作表
- Shift + F9重新计算活动工作表
- Ctrl + Alt + F9重新计算所有打开的工作簿中的所有工作表(完全重新计算)
- Shift + Ctrl + Alt + F9重建依赖关系树并进行完整的重新计算
回答
如果我们在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