我有类似下面的东西。
mth = 08
dy = 12
yr = 2014
dt = dy & "/" & mth & "/" & yr
Cells(i,j) = dt
当代码运行时,日期将转换为美国格式,因此实际上显示为mmddyyyy而不是ddmmyyyy。
我该如何解决这个问题?
答案 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"