Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la diferencia entre ByVal y ByRef en VBA?

¿Cuál es la diferencia entre ByVal y ByRef en VBA?

ByRef:

Transferir por dirección (ByRef) significa que el programa principal transfiere directamente los datos a la subrutina (la subrutina define el método de transferencia) y los modifica en la subrutina. Al depurar y regresar al programa principal, el programa principal genera el valor modificado.

Por ejemplo, si configuro ByRef en el parámetro, entonces puedo cambiar el valor de la variable ByRef

ByVal:

Byval:

p>

Pasar por valor (Byval) significa pasar el valor del programa principal (una copia de la copia) a la subrutina. El proceso opera en la copia y la salida del programa principal sigue siendo el valor original. Si desea generar el valor después de pasar el valor lateral, puede configurar la salida en la subrutina.

Por ejemplo, si configuro ByRef en el parámetro, entonces no puedo cambiar el valor de la variable ByRef, solo se cambia su copia, lo cual no tiene sentido

La siguiente es una ejemplo: Sub?Test(ByRef?a?As?Integer,?ByVal?b?As?Integer) ?

'Tenga en cuenta que aquí a se pasa a través de la dirección y b se pasa a través del valor Aprobado

a?=?3

b?=?4

End?Sub

'Este es el programa principal

p>

Sub?Main()

Dim?a?As?Integer

Dim?b?As?Integer

a?=?1

b?=?2

Prueba(a,?b)

MsgBox?("a="? &?a? &?" ;b ="? &?b)

¿Fin?