Formula or Formula2
link - learn.microsoft.com/en-us/office/vba/excel/concepts/cells-and-ranges/range-formula-vs-formula2
When targeting a Dynamic Arrays version of Excel, you should use Range.Formula2 in preference to Range.Formula.
Range.Formula and Range.Formula2 are two different ways of representing the logic in the formula.
They can be thought of a 2 dialects of Excel's formula language.
Excel has always supported two types of formula evaluation: Implicitly Intersection Evaluation ("IIE") and Array Evaluation ("AE").
IIE was the default for cell formulas
AE was used everywhere else (Conditional Formatting, Data Validation, CSE Array formulas, etc).
The primary difference between the two forms of Evaluation was how they behaved when a multi celled range (e.g. A1:A10) was passed to a function that expected a single value:
IIE would choose the cell on the same row or column as the formula. This operation is referred to as "implicit intersection".
AE would call the function with each cell in the multi celled range and return an array of results. This operation is referred to as "lifting".
When Range.Formula is used to set a cell's formula, IIE is used for evaluation.
With the introduction of Dynamic Arrays ("DA"), Excel now supports returning multiple values to the grid and AE is now the default.
AE formula's can be set/read using Range.Formula2 which supersedes Range.Formula.
However, to facilitate backcompatiblity, Range.Formula is still supported and will continue to set/return IIE formulas.
Formula's set using Range.Formula will trigger implicit intersection and can never spill. Formula read using Range.Formula will continue to be silent on where Implicit Intersection occurs.
Excel automatically translates between these two formula variations, so either can be read and set.
To facilitate the translation from Range.Formula (using IIE) to Range.Formula2 (AE), Excel will indicate where implicit intersection could occur using the new implicit intersection operator @.
Likewise, to facilitate the translation from Range.Formula2 (using AE) to Range.Formula (using IIE) Excel will remove @ operators that would be performed silently.
Often there is no difference between the two.
© 2025 Better Solutions Limited. All Rights Reserved. © 2025 Better Solutions Limited TopPrevNext