Refresh Excel VBA Function Results
Some more information on the F9 keyboard shortcuts for calculation in Excel
- F9 Recalculates all worksheets in all open workbooks
- Shift+ F9 Recalculates the active worksheet
- Ctrl+Alt+ F9 Recalculates all worksheets in all open workbooks (Full recalculation)
- Shift + Ctrl+Alt+ F9 Rebuilds the dependency tree and does a full recalculation
Okay, found this one myself. You can use Ctrl+Alt+F9 to accomplish this.
You should use Application.Volatile
in the top of your function:
Function doubleMe(d)
Application.Volatile
doubleMe = d * 2
End Function
It will then reevaluate whenever the workbook changes (if your calculation is set to automatic).
If you include ALL references to the spreadsheet data in the UDF parameter list, Excel will recalculate your function whenever the referenced data changes:
Public Function doubleMe(d As Variant)
doubleMe = d * 2
End Function
You can also use Application.Volatile
, but this has the disadvantage of making your UDF always recalculate - even when it does not need to because the referenced data has not changed.
Public Function doubleMe()
Application.Volatile
doubleMe = Worksheets("Fred").Range("A1") * 2
End Function