I had a similar problem and solved it by converting the date to a string first. E.g.:
vdate = STRING(MONTH(order.orddate), "99") + "/" + STRING(DAY(order.orddate), "99") + "/" + STRING(YEAR(order.orddate), "9999").
chWorksheet:Range(vrange):Value = vdate.
chWorksheet:Range(vrange):NumberFormat = "dd/mm/yy;@".