Hopefully an easy question, but I'd quite like a technical answer to this!
What's the difference between:
i = 4
and
Set i = 4
in VBA? I know that the latter will throw an error, but I don't fully understand why.
Hopefully an easy question, but I'd quite like a technical answer to this!
What's the difference between:
i = 4
and
Set i = 4
in VBA? I know that the latter will throw an error, but I don't fully understand why.
Off the top of my head, Set is used to assign COM objects to variables. By doing a Set I suspect that under the hood it's doing an AddRef() call on the object to manage it's lifetime.
In your case, it will produce an error. :-)
Set
assigns an object reference. For all other assignments the (implicit, optional, and little-used)Let
statement is correct:set
is used to assign a reference to an object. The C equivalent would beSet is an Keyword and it is used to assign a reference to an Object in VBA.
For E.g., *Below example shows how to use of Set in VBA.
Dim WS As Worksheet
Set WS = ActiveWorkbook.Worksheets("Sheet1")
WS.Name = "Amit"
From MSDN:
So when you want to set a value, you don't need "Set"; otherwise, if you are referring to an object, e.g. worksheet/range etc., you need using "Set".