Format() returns a string, and when the WS gets it it tries to help by making it into number using whatever the NumberFormat is


Try something like this and see if it helps

Sheet1.Range("A1").NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)"

Sheet1.Range("A1").Value = Cost.Value