Tema: saludos..
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/05/2010, 02:02
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
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 ...