【发布时间】:2019-02-10 15:48:15
【问题描述】:
在某些版本的 Excel 中,我有一半的日期格式为 Mar/31/2018,单元格格式一般,另一半是日期格式和 03/31/2018。这些是从某个地方导出的,所以我无法更改。这些日期用于数据透视表。
我试过了
Range("C2:C200").NumberFormat = "m/dd/yyyy"
覆盖格式并将它们全部匹配到相同的格式,但在数据透视表中,上半部分始终显示 Mar/31/2018 而不是 03/31/2018。并且 2018 年 3 月 31 日日期左对齐,而另一半日期右对齐正确格式 03/31/2018。
Range("C2:C200").Value.NumberFormat = "m/dd/yyyy" does not work either.
For i = 2 to lastRow Step 1
dateString = Cells(i, 3).Value
Cells(i, 3).Value = DateValue(dateString) only works for the cells that are already in custom or date format and not for the general format cells.
我希望能够将一般格式覆盖为适当的日期格式。
【问题讨论】:
-
尝试使用
CDate。它将字符串转换为日期。当从另一个应用程序或网站导出数据时,它通常以文本字符串的形式出现。另一种选择是复制粘贴乘以 1。 -
会试一试。 CDate 会在已经正确的单元格上抛出错误吗?
-
cdate不会在日期输入上引发错误。debug.print format(cdate(dateserial(2018,6,3)),"YYYY-MM-DD")=> 2018-06-03