【问题标题】:Wrong VBA date format in Excel cellExcel 单元格中的 VBA 日期格式错误
【发布时间】:2013-06-13 12:17:38
【问题描述】:

我正在尝试使用 VBA 在我的 Exel 工作表中打印出不同的日期格式。但是,我似乎无法输出“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-Jun-13,A3 打印 13/06/2013,A4 打印 13-Jun-13。

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

【问题讨论】:

  • 如果单元格设置为Text格式,则代码有效,否则返回您报告的结果。 MediumDateFmt 等值已在您的代码中正确设置。

标签: excel vba


【解决方案1】:

你应该改变单元格格式而不是使用格式化字符串

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

例如

【讨论】:

    【解决方案2】:

    Format 不会将单元格的格式设置为您想要的格式,它只是为您提供指定格式的字符串。将该字符串插入单元格不一定会给您想要的结果,因为单元格的当前格式可能会产生影响。

    如果你想改变单元格本身的格式,你需要设置它的NumberFormat属性,比如:

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

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 2013-11-17
      • 2015-08-31
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      相关资源
      最近更新 更多