我有一个带有三个组合框的表格,一个用于(可能的)31个月,第二个用于表示月份的12个数字,第三个用于表示未来五年的年份值。
我将这些连接起来形成一个日期
TheDay = CBDay.Value
TheMonth = CBMonth.Value
TheYear = CBYear.Value
thedate = TheDay + "/" + TheMonth + "/" + TheYear
所以,今天在澳大利亚,这个日期将显示为10/12/2015,这很好。但是,当我将数据写入工作表时,即使写入数据的列格式化为' date'在< dd / mm / yy'式
变量声明为整数
有没有办法确保日期的价值不会发生变化?
答案 0 :(得分:4)
Excel认为它的格式化字符串看起来像日期一样聪明。
尽可能使用日期序列号并强制使用您自己的格式
例如
Dim theDate As Date
theDate = DateSerial(TheYear, TheMonth, TheDay)
ActiveCell = theDate
ActiveCell.NumberFormat = "dd/mm/yyyy"
' or better yet, use an unambiguous date format
ActiveCell.NumberFormat = "dd mmm, yyyy"