View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 6,953
Default Problem when I store a copy of an object in a new variable

when you use the set command, you are setting a reference to the original
object. Then when you perform a change either using the oldstorenumber or
newstorenumber, you are using the same instance of the class.

You need to create a new instance of the class, copy the attributes between
instances. And create a reference to this new instance.

--
Regards,
Tom Ogilvy


"pinkfloydfan" wrote:

Hi all

Having built an object of a user-defined class and stored it an
element of a public array (all works fine), I now wish to copy that
object to a new element and work on the copy.

For example:


Public StoreObjects(100) as NewClass1

Function CreateCopyClass(OldStoreNumber as integer, NewStoreNumber as
integer)
Set StoreObjects(NewStoreNumber)=StoreObjects(OldStore Number)
CreateCopyClass=NewStoreNumber
End Function

The problem is that while the object seems to have been copied over to
the NewStoreNumber, when later I look to manipulate that new object
within the code it also changes the data in the original object.

What am I doing wrong please?

Thanks very much for your help
Lloyd