Excel单元格中错误的VBAdate格式

我试图使用VBA在我的Exel表格中打印出不同的date格式。 但是,我似乎无法输出“yyyy-mm-dd”格式,或“mmm dd,yyyy”格式。 单元格似乎没有打印出正确的格式。 例如:

'Declare new date variables Dim LongDateFmt As String Dim ShortDateFmt As String Dim MediumDateFmt As String Dim NewDateFmt As String 'Change the date to the new submission date MediumDateFmt = Format(Date, "yyyy-mm-dd") Range("A1").Value = MediumDateFmt LongDateFmt = Format(Date, "Long Date") Range("A2").Value = LongDateFmt ShortDateFmt = Format(Date, "Short Date") Range("A3").Value = ShortDateFmt NewDateFmt = Format(Date, "MMMM dd, yyyy") Range("A4").Value = NewDateFmt 

A1打印出13/06/2013,A2打印13 – 13 – 13,A3打印出13/06/2013和A4打印13 – 13 – 13。

这是设置问题还是我的代码错了?

你应该改变单元格格式,不要使用格式化的string

 with Range("A1") .Value = Date .Numberformat = "yyyy-mm-dd" end with 

例如

Format不会将单元格的格式设置为所需的格式,只是给出一个指定格式的string。 将该string插入到单元格中并不一定会提供您想要的结果,因为单元格的当前格式可能会产生影响。

如果你想改变单元格的格式你需要设置它的NumberFormat属性,如下所示:

 Range("A1").NumberFormat = "yyyy-mm-dd"