【问题标题】:Format a date into mm.dd.yyyy format将日期格式化为 mm.dd.yyyy 格式
【发布时间】:2014-06-11 09:20:38
【问题描述】:

我有一个 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

【问题讨论】:

  • 如果是字符串/文本格式,那就不行了。 Format 函数接受日期数据类型。您必须先操作字符串日期,然后使用 Format 函数。

标签: excel vba date


【解决方案1】:

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

使用类似(伪代码):

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

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

请绝对确定格式是一致的。任何更改(尤其是填充是臭名昭著的)都会破坏您的格式。

【讨论】:

    【解决方案2】:

    这是另一种解决方案:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-07
        • 2022-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多