Re: Pass object by value not working...
- From: "Peter T" <peter_t@discussions>
- Date: Mon, 22 Jan 2007 18:18:15 -0000
At serious risk of being castigated by both Bob and Jim, you can pass
objects ByVal or ByRef. However in your example you are not changing the
reference to your class to a different instance of your class, merely
changing a property of the one and only class.
This might demonstrate.
Sub aaa()
Dim rA As Range, rB As Range
Set rA = Range("A1")
Set rB = Range("A2")
rA.Value = 1: rB.Value = 2
foo rA, rB
MsgBox rA.Address, , rA.Value
MsgBox rB.Address, , rB.Value
End Sub
Function foo(ByRef r1 As Range, ByVal r2 As Range)
Set r1 = Range("B1")
Set r2 = Range("B2")
r1.Value = 10: r2.Value = 20
End Function
Regards,
Peter T
"Lyndon" <lyndon.webster@xxxxxxxxx> wrote in message
news:1169486318.046279.296510@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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: Bob Phillips
- Re: Pass object by value not working...
- From: Jim Thomlinson
- Re: Pass object by value not working...
- References:
- Pass object by value not working...
- From: Lyndon
- Pass object by value not working...
- Prev by Date: Re: Pass object by value not working...
- Next by Date: Re: Open File then Set as
- Previous by thread: Re: Pass object by value not working...
- Next by thread: Re: Pass object by value not working...
- Index(es):
Relevant Pages
|
Loading