Hola Raziel, intento explicarte un poco mejor que JuanC...;)
ByVal, pasa el valor de la variable, lo que quiere decir, que las modificaciones que realices sobre esa variable dentro de la funcion, no tienen valor fuera de la misma.
ByRef, pasa la referencia de memoria de la variable. Esto quiere decir, que cualquier modificacion que realices sobre la variable dentro de la funcion, se realiza en la posicion de memoria de la variable, por lo que mantendra el valor cuando finalice la funcion.
Espero haberme explicado bien...
Un saludo