【发布时间】:2018-11-02 12:41:05
【问题描述】:
我有一列以 DD-MM-YYYY 格式存储的日期。我正在使用 VBA 的 cdate 函数循环它们以将它们转换为值 - 但是,当月份的日期为 12 或更小时,Cdate 将日期解释为 MM-DD-YYYY。解决这个问题最方便的方法是什么?
【问题讨论】:
-
如果您的区域设置不使用 dd-mm-yyyy 格式(看起来就是这种情况),并且如果日期实际存储为文本,则您必须自己解析日期字符串.
-
如果日期在 excel 中实际上被格式化为日期,那么就没有理由将它们传递给
CDATE()进行转换。只需将您的日期变量设置为单元格值。如果它们存储为文本,则必须使用Mid()解析字符串以重新排列并将结果传递给 Cdate()。 -
它们不是,它们被格式化为文本(从 HTML 中提取的字符串,然后删除标签)
-
在
/上拆分它们并将它们提供给Dateserial函数。或者,使用Data/Text-to-columns向导并将列格式定义为DMY(或 Power Query 中的等效项