VBA将字符串转换为日期格式

时间:2013-12-19 03:16:43

标签: excel vba date

我有一个包含格式为YYMMDD的字符串的文件。例如。 120216(将始终采用此格式)。

我想将其转换为理想情况下的日期格式为DDMMYY或DDMMYYYY。

有没有人遇到类似的问题,他们是如何解决的?

1 个答案:

答案 0 :(得分:4)

您可以拆分字符串,然后使用DateSerial。见这个例子。

Option Explicit

Sub Sample()
    Dim sDate As String
    Dim Y As Long, M As Long, D As Long

    sDate = "120216"
    Y = Left(sDate, 2)
    M = Mid(sDate, 3, 2)
    D = Right(sDate, 2)

    Debug.Print Format(DateSerial(Y, M, D), "DDMMYY")
    Debug.Print Format(DateSerial(Y, M, D), "DDMMYYYY")
End Sub

通过评论进行跟进

  

谢谢,我可能要编写一个函数,我可以在其中传递字符串日期以进行转换。是否有可能将Debug ...行保存到变量中? (似乎不是)或替代工作? - Marco Susilo 4分钟前

我没有做任何错误处理。我相信你能解决这个问题吗?

Option Explicit

Sub Sample()
    Dim Ret As String

    Ret = GetDate("120216", "DDMMYY")

    Debug.Print Ret

    Ret = GetDate("120216", "DDMMYYYY")

    Debug.Print Ret
End Sub

Function GetDate(sDate As String, sFormat As String) As String
    Dim Y As Long, M As Long, D As Long

    Y = Left(sDate, 2)
    M = Mid(sDate, 3, 2)
    D = Right(sDate, 2)

    GetDate = Format(DateSerial(Y, M, D), sFormat)
End Function