我有一个问题:
我在 dd.mm.yyyy
中有一个日期列格式,我替换 .
与 -
并使用
循环:
Cells(i, 2).Value = Format(Cells(i, 2).Value, "yyyy-mm-dd")
因为我需要做
yyyy-mm-dd
.它工作得很好,但是一些日期的格式不正确,比如从 4 月 5 日到 5 月 4 日。
最佳答案
听起来您当前的单元格值存储为恰好看起来像日期的字符串。
您的区域设置将默认为日期格式 mm-dd-yyyy
.因此,如果日期不明确(如 4 月 5 日),Excel 将默认采用该解释。
您应该真正将日期存储为真实日期,并使用格式来根据需要显示它们。有点像
If Cells(i, 2).Value Like "##-##-####" Then
s = Cells(i, 2).Value
Cells(i, 2).Value = DateSerial(Mid$(s, 7, 4), Mid$(s, 4, 2), Left(s, 2))
Cells(i, 2).NumberFormat = "yyyy-mm-dd"
End If
如果您坚持将它们存储为字符串,请使用
If Cells(i, 2).Value Like "##-##-####" Then
s = Cells(i, 2).Value
Cells(i, 2).NumberFormat = Format$(DateSerial(Mid$(s, 7, 4), Mid$(s, 4, 2), Left(s, 2)), "yyyy-mm-dd")
End If
关于excel - 日期格式问题,某些日期格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605197/