The default element of the Range class is called _Default and is hidden. When you enable the "Show hidden members" function in the Object Explorer, you can see it:

It has the same signature as the .Item property, so one of them may be an alias for the other. (*)
In any case, Range also implements the collection interface. That way, it can be used in a For Each loop - and when you do this, the loop will call .Item with each iteration and assign the current element to the loop variable.
When used outside the enumeration, for example, with Debug.Print , then .Value will be .Value , but I can not explain why. Maybe someone else can come up with a hint. (*)
(*) Since @GSerg points to in the comments, _Default() and _Item() not quite equal.
source share