I was wondering why in VBA code for Excel 2003 do we even need to use Range.Formula
to write a formula to a cell instead of just using Range.Cell
? They both write Strings to the cell that become forumlas, and the formula works (from what I've tested).
ActiveCell.Value="=If(True,""yes"",""no"")"
and
ActiveCell.Formula="=If(True,""yes"",""no"")"
do the same thing for me (when I select a cell and execute each of the above code segments separately in separate cells). They both show the "yes" value in the cell and the formula is stored when I click to view each cell.
I looked on Microsoft's Dev Center for info:
Range.Formula
Range.Formula Property for Excel 2013 (Excel 2003 did not have a page for this Property)
Range.Value
Property for Excel 2003 (Expand the "Value property as it applies to the Range object." heading
I also googled "Why use Range.Formula instead of Range.Value VBA Excel" and couldn't find anything that related to my question.
Some people said, use Range.Value
.
Some others say use Range.Formula
on stack overflow (Sorry I lost the reference to the exact question...)
Range.Value
. The primary difference is that you cannot use.Value
to retrieve the formula. You may be able to input formulas via the Value, but you cannot retrieve it that way. (Would have bothered to put that as an answer, but it doesn't answer your question.) – Daniel.Formula
returns a String,.Value
returns the respective data types. With respect to writing, it doesn't seem to make a difference – Mr_Moneybags