15/05/2010, 02:02
|
| | | Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 1 mes Puntos: 53 | |
Respuesta: saludos.. Cuando pasas un valor por Referencia, ByRef, cualquier cambio que efectues en la Rutina afecta al valor original, sin embargo cualquier valor que pases por ByVal le estas pasando realmente el valor, no la variable por lo que su valor original no cambiará .
Prueba si quieres este código que te lo demostrará: Private Sub Command1_Click()
Dim Prueba As Integer
Prueba = 1
Call PorByRef(Prueba)
MsgBox "Después de ByRef su valor a cambiado a " & Prueba
Prueba = 2
Call PorByVal(Prueba)
MsgBox "Después de ByVal su valor se mantiene " & Prueba
End Sub
Private Sub PorByRef(ByRef Variable As Integer)
Variable = 0
End Sub
Private Sub PorByVal(ByVal Variable As Integer)
Variable = 0
End Sub
Usar uno u otro dependerá de tu decisión en cada momento y según desees.
Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |