Pass object by value not working...
- From: "Lyndon" <lyndon.webster@xxxxxxxxx>
- Date: 22 Jan 2007 09:18:38 -0800
Hi all,
Is there any way to pass an object (created from a custom Class) by
Value in VBA..? I have tried using the ByVal keyword in my procedure
but the object is still being passed by reference (the original object
is modified in the procedure code). Here's my code:
For the Class module (called Test):
Private classVar1 As String
Property Get Number() As String
Number = classVar1
End Property
Property Let Number(ByVal newvalue As String)
classVar1 = newvalue
End Property
In the main Module:
Private Test1 As Test
Private Sub Initiate()
Set Test1 = New Test
Let Test1.Number = "1"
Call AnotherSub(Test1)
MsgBox Test1.Number 'Shows 2 not 1 even though it should be passed
ByVal, not ByRef
End Sub
Private Sub AnotherSub(ByVal t As Test)
Let t.Number = "2"
End Sub
How do I force VBA to pass this Class ByVal or can't it be done..?
Thanks,
Lyndon.
.
- Follow-Ups:
- Re: Pass object by value not working...
- From: Peter T
- Re: Pass object by value not working...
- From: merjet
- RE: Pass object by value not working...
- From: Jim Thomlinson
- Re: Pass object by value not working...
- From: Bob Phillips
- Re: Pass object by value not working...
- Prev by Date: Re: Saving data as *.txt file
- Next by Date: Delete the contents of a cell under multiple conditions
- Previous by thread: Automatically keeping cells together when printed.
- Next by thread: Re: Pass object by value not working...
- Index(es):
Relevant Pages
|