There are differences. Think of Variant as something that exists at a low level on your computer and has an application programming interface (API) for VBA. This low-level thing is Variant , and Windows comes with several features that allow you to manipulate it in many languages; VBA is one of them.
v is an array of Visual Basic of such Variant s, u is one.
One way to tell the difference is to use VarType(v) , which evaluates to vbArray + vbVariant . VarType(u) has the value vbEmpty . You can check this before assigning to the contents of the range.
In your specific case, Excel-VBA does something funky (I donโt think there is any other term) when assigning v : it โknowsโ that the type of destination is an array and does a slightly different compulsion. u and v exactly the same as the value of Excel.Range .
source share