Consider the following snippet. He writes the same formula in two cells A1 and A2
Sub Main() With Range("A1") .Formula = "=1+1" End With With Range("A2") .Formula = "=1+1" .Value = .Value End With End Sub
The second with block uses .Value = .Value , which evaluates / executes the formula, so the formula disappears from the formula line. See hiding formulas from the formula bar for a reference link.

Now add another one with block
With Range("A3") .Formula = "=1+1" End With Range("A4") = Evaluate(Range("A3").Formula)
You add the formula to cell A3 , then the new formula of cell Evaluated() to another cell A4 . The results shown in the figure.

I think the above shows show that .Value = .Value and Evaluate() do the same.
However, the code below extracts the value from a closed book using the two approaches mentioned. I created the book book9.xlsm book for this example using hello placed in cell A1. book9.xlsm is the one I pulled from the A1 value. Consider the code
Sub PullValue() With Range("A1") .Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1" End With With Range("A2") .Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1" .Value = .Value End With Range("A3").Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1" Range("A4") = Evaluate(Range("A3").Formula) End Sub
The first with block places the formula in cell A1 value from book9.xlsm . It starts, so the pulled out hello value, but the formula bar shows the actual .Formula , which is equal to C:\...
The second with block uses .Value = .Value , as shown above, to evaluate the formula and conjugate the formula, replacing it with the result.
The range ("A3") matches the first with block.
And now ( A4 ) I follow the same principle as the first example (the first fragment in this question) before the Evaluate() formula, but this time it does not work.
Please see all the values โโof active cells and the formula bar for each of them.

So now I cannot say that .Value = .Value is equal to Evaluate() .
Evalutate () comments say that it can be used with formulas. But in the example I showed, it does not work.

Are the formulas used as parameters in Evaluate() limited? I always thought that Evaluate is very powerful, but it looks like .Value = .Value is actually even more powerful. Although they are very similar, they are somewhat different (but I believe that this may be my mistake, because the formula that I chose for this example may be limited or limited). I think I showed what makes them two the same and different at the same time. Itโs just like 50% / 50%, and I canโt say for sure whether they are the same or not. It would be great if someone could explain what was missing here.