When you do a normal assignment (i.e. not via the automation interface) you type in the variable name, the assignment operator, and the value you are assigning. You can then evaluate the variable by typing in the variable name and the evaluation operator. The value is then displayed. If you save the worksheet everything you typed in is saved with it, but not, in general, the calculated results.
When you do an assignment via the automation interface using SetValue it creates a variable according to the name you supply, and assigns a value to it. It does this assignment prior to any variable assignments you have typed into the worksheet. If you like, you can think of it as being just above and to the left of anything that's visible on the sheet. It does NOT modify the worksheet in any way, it just creates a variable in the background and assigns the value to it. If you wish to see the value, you must use the evaluation operator. If you save the worksheet, the variable and it's assigned value are not saved, because there is no assignment to that variable on the worksheet.
What you want to do is possible in MC12 and after, by modifying the XML in the worksheet file, but if you want to modify or create any significant amount of the worksheet programmatically it's not trivial. Stuart posted a simple example of this somewhere.
Perhaps we need to back up a little though, and ask "why do you want to do it"? If you don't know what the name of the variable is going to be before it's assigned, then how do you propose to write anything useful in the worksheet that does something with the value passed to it?
What is your end objective? Perhaps with more information we can suggest an alternative approach that achieves that objective.
Richard
PS. Eden already said it, but I'll repeat it anyway. Please don't cross post. It can lead to duplicate answers, and/or answers that are mixed up between two threads. Everything then gets really hard to follow.