Hola, el problema es que dentro de la funcion estás modificando el Valor de la variable que le envias, existen dos posibilidades, la primera de ellas es que utilices una variable distinta y la otra que definas así la funcion:
Código vb:
Ver originalPrivate Function Calculo(ByVal x As Currency) As Currency
End Function
De este modo pasas el VALOR de la variable o sea, es como si pasases una copia de la misma y no modificas su valor al salir de ella.
Saludos