我有一个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
答案 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")