我的电子表格中有一个日期列未正确排序,因为某些日期采用 MMDDYYYY HH:MIN 格式,而其他日期采用 DDMMYYYY HH:MIN 格式,并且 Excel 将所有日期识别为 MMDDYYYY HH:MIN。如何标准化?如何让 Excel 将日期识别为 DDMMYYYY HH:MIN,并转换 MMDDYYYY HH:MIN(目前被视为 DDMMYYYY)?
我尝试使用 TEXT() 将日期转换为文本,但现在我被卡住了。DATE() 不允许我指定要转换的格式。
正如上面的一些评论中所说,计算机的区域设置会影响 Excel 处理日期的方式,并且有时会引发难以修复的情况。
您的问题的第一个解决方案是更改单元格的(日期)格式;据我了解,您将通过 VBA 影响单元格,最好依靠 VBA 代码来确保一切正常。
您可以做一个简单的测试来查看日期格式修改的行为:将一些日期放在 A 列中,将相同的日期放在 B 列中(即单元格 B1:“=A1”,单元格 B2“=A2”等。 ) 并从 VBA 执行以下代码:
Range("A:A").NumberFormat = "mm-dd-yyyy hh:mm"
Range("B:B").NumberFormat = "dd-mm-yyyy hh:mm"
如果没有问题,您会在两列的不同位置看到月份。在这种情况下,您可能会依赖这种代码来确保日期格式是您想要的格式。
如果此测试未成功通过,我建议您依靠文本而不是日期来避免问题:将所有列的格式设置为文本(.NumberFormat = "@"
在 VBA 中),解析给定的值(日、月等),在您的计算中将它们视为日期,并在写入 Excel 时将它们转换回文本(之后您可能会做一些实验,看看将给定的单元格转换为日期是否能提供您想要的行为)。