VBA将string转换为date格式

我有一个格式为YYMMDD的string文件。 例如。 120216(将始终以这种格式)。

我想将其转换为DDMMYY或DDMMYYYY格式的理想date。

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

您可以拆分string,然后使用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 

从评论后续

谢谢,我可能将不得不写一个函数,我可以传递stringdate进行转换。 任何可能将Debug …行保存到variables中? (似乎不能)或替代工作? – Marco Susilo 4分钟前

我没有做任何error handling。 我相信你可以照顾这个吗?

 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