字符串到英国日期格式

时间:2014-10-29 09:06:31

标签: vba excel-vba datetime excel

我有类似下面的东西。

mth = 08
dy = 12
yr = 2014
dt = dy & "/" & mth & "/" & yr
Cells(i,j) = dt

当代码运行时,日期将转换为美国格式,因此实际上显示为mmddyyyy而不是ddmmyyyy。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

跑步

 Cells(i,j).NumberFormat = "dd mm yyyy"

它应该没问题

答案 1 :(得分:0)

虽然你已经有了答案,但我会把这个问题和我喜欢的方法一起放进去:

Cells(i,j) = DateSerial(yr, mth, dy)

这应该避免任何意外的格式化,因为您没有将值放入字符串并要求VBA将字符串转换为日期。

答案 2 :(得分:0)

试试这个:

Sub test()

    Dim mth     As Integer
    Dim dy      As Integer
    Dim yr      As Integer
    Dim dt      As Date

    mth = 8
    dy = 12
    yr = 2014
    dt = Format(DateSerial(yr, mth, dy), "dd mm yyyy")
    Cells(1, 1) = dt

End Sub

答案 3 :(得分:0)

这取决于你想用它做什么。如果您打算仅将其用于显示,则可以使用撇号将值前置。这指示Excel将值解释为文本。

dt = "'" & dy & "/" & mth & "/" & yr

如果你想进行日期计算(包括排序),你可以使用建议的`DateSerial'函数,但你必须将列的格式设置为所需的格式,否则Excel将使用默认格式。

Cells(i,j).NumberFormat = "dd/mm/yyyy"