Sacado de la ayuda del MSDNNota La función Val sólo reconoce el punto (.) como separador decimal válido. Cuando se utilizan separadores decimales diferentes, como en aplicaciones internacionales, debe utilizar CDbl para convertir una cadena a un número.
Pero has un ejemplo con valores mallores de 1,000.00. ( Suma= val(valor1 )+ val(Valor2)) donde valor1= 1200 y valor2= 850(por Ej). Si te manda (2) en ves de (2,050.00) usa esto[Suma= round(valor1,2) + round(valor2,2)] ya que el val algunas veces es tonto y toma el 1,000 como si fuera (1).