I have got this codes as below from the web. but I don't quite understand it. can someone explain please?
why the output is
AFTER CALL::Range1: A3 =
AFTER CALL::Range2: A2 = 654
Sub CallingProcedure()
Dim Range1 As Range
Dim Range2 As Range
Set Range1 = Range("A1")
Set Range2 = Range("A2")
Range1.Value = 123
Range2.Value = 456
'''''''''''''''
' Debug Group 1
'''''''''''''''
Debug.Print "BEFORE CALL::Range1: " & Range1.Address(False, False) & " = " & Range1.Value
Debug.Print "BEFORE CALL::Range2: " & Range2.Address(False, False) & " = " & Range2.Value
CalledProcedure R1:=Range1, R2:=Range2
'''''''''''''''
' Debug Group 2
'''''''''''''''
Debug.Print "AFTER CALL::Range1: " & Range1.Address(False, False) & " = " & Range1.Value
Debug.Print "AFTER CALL::Range2: " & Range2.Address(False, False) & " = " & Range2.Value
End Sub
Sub CalledProcedure(ByRef R1 As Range, ByVal R2 As Range)
R1.Value = 321
R2.Value = 654
Set R1 = Range("A3")
Set R2 = Range("A4")
End Sub
correct output :
BEFORE CALL::Range1: A1 = 123
BEFORE CALL::Range2: A2 = 456
AFTER CALL::Range1: A3 =
AFTER CALL::Range2: A2 = 654
Kind regards
Alex
Bookmarks