将日期格式化为mm.dd.yyyy格式

时间:2014-06-11 09:20:38

标签: excel vba date

我有一个VBA脚本,我正在尝试将字符串转换为" yyyymmdd"格式为" mm / dd / yyyy"格式。但是,当我使用格式函数来实现这一点时,它会显示

"Run time error-6": Overflow

任何人都能帮助我吗?以下是对应的VBA代码。

// NewDate is in the format "yyyymmdd" being extracted out of a file path like "C:\Files\20140611\file.csv"

Required_format=Format(NewDate,"mm/dd/yyyy") // This line shows the error

3 个答案:

答案 0 :(得分:2)

你必须自己格式化,因为Format并不知道它正在处理日期,它只是看到一个字符串。

使用类似(伪代码)的东西:

y = left(NewDate, 4)
m = mid(NewDate, 5, 2)
d = right(NewDate, 2)

Required_format = m + "/" + d + "/" + y

绝对确保格式是一致的。任何改变(特别是填充都是臭名昭着的)会弄乱你的格式。

答案 1 :(得分:0)

这是另一个解决方案:

CDate(format(NewDate,"mm dd yyyy"))

答案 2 :(得分:0)

这是另一种方法。如上所述,NewDate包含一个8位数字符串,表示yyyymmdd格式的日期。以下“one liner”将以您想要的格式输出日期(作为字符串):

Format(Format(NewDate, "@@@@/@@/@@"), "mm/dd/yyyy")