Excel格式为MM-DD-YYYY但Excel识别为DD-MM-YYYY的日期

Excel格式为MM-DD-YYYY但Excel识别为DD-MM-YYYY的日期,excel,vba,date,Excel,Vba,Date,我的电子表格中有一个日期列排序不正确,因为有些日期是MMDDYYYY HH:MIN格式,而其他日期是DDMMYYYY HH:MIN格式,Excel将所有日期识别为MMDDYYYY HH:MIN。如何进行标准化?我如何让Excel将日期识别为DDMMYYYY HH:MIN,并转换为MMDDYYYY HH:MIN(当前被视为DDMMYYYY) 我尝试使用text()将日期转换为文本,但现在我被卡住了。DATE()不允许我指定要转换的格式。正如上面的一些评论所说,计算机的区域设置可能会影响Excel处

我的电子表格中有一个日期列排序不正确,因为有些日期是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"
如果没有问题,您将在两列中看到不同位置的月份。在这种情况下,您可以依靠这种代码来确保日期格式是您想要的格式


如果此测试未成功通过,我建议您使用文本而不是日期来避免问题:在VBA中将所有列的格式设置为文本(
.NumberFormat=“@”
),分析给定值(天、月等),在计算中将其视为日期,并在写入Excel时将其转换回文本(之后,您可能会做一些实验,看看将给定的单元格转换为日期是否能实现您想要的行为).

日期中是否有破折号?根据您的区域设置,excel将尝试将任何输入的日期解释为dd/mm/yyyy或mm/dd/yyyy。这样做并不总是成功……日期从何而来?问题是:您的数据如何进入excel?是手动键入的还是来自数据库?请确保您是正确的广告-它会告诉你。此外,排序日期通常不是你想用excel的内置功能做的事情,因为它并不适用于所有的日期格式。你可能想实现自己的排序方法,即拆分日期元素并按片段排序。我刚才所说的一个支持示例是以2列为例日期为DD/MM/YYYY,另一个为MM/DD/yyyyy,在其上设置了一个筛选器并按升序排序-这将帮助您意识到excel无法正确排序。有破折号。如果不清楚,请道歉。日期来自一个程序,该程序已从Windows Mobile Phone完美地恢复了我的所有短信。thx!欢迎。我确实遇到了一些问题过去我一直使用Excel中的日期格式,我知道这会变得多么令人沮丧。