我遇到了令人烦恼的日期格式与 Excel VBA 不一致的问题。我有一个源文本文件,其日期格式为 dd/mm/yyyy(即 sane 格式)。但我需要将其转换为yyyy/mm/dd
(为了保持一致性,我还在我的计算机中将此格式设置为默认格式)。
当我将此文本文件导出到数据库时,如果 dd
和 mm
值都小于 12,VBA 会将它们视为 mm/dd/yyyy
而不是 dd/mm/yyyy
。即使我对这种非标准日期格式也很困惑,糟糕的VBA。
例如,我的文本文件中有 06/08/2015
,即 8 月 6 日
,但是 CDate("06/08/2015")
返回 2015/06/08
,即 6 月 8 日
。但如果文本文件有 15/08/201
5,VBA 可以将其识别为 2015/08/15
。
如何告诉 VBA 06/08/2015
采用 dd/mm/yyyy
格式?
任何有关这项烦人而乏味的任务的帮助将不胜感激!
最佳答案
使用 DateSerial() 而不是 CDate():
Dim d$
d = "06/08/2015"
MsgBox DateSerial(Right$(d, 4), Mid$(d, 4, 2), Left$(d, 2))
这样您就可以控制日期的哪些位。
关于输入日期的VBA解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849959/