可视化基本date对象从具有索引的string中parsing

我想问一下,如果在VBA中有一个内置的函数,它将根据指定的格式从stringparsingdate对象。

例如:

dateString = "24-4-12" VBADateFunc(dateString, "dd-m-yy") 

通过提供的格式返回解释dateStringstring的date对象。

我会在这上面提出你的想法。

谢谢

干得好:

 Public Sub TestMe() Dim dtMyDate As Date dtMyDate = Format("24-4-12", "dd-mm-yy") Debug.Print dtMyDate Debug.Print Format(dtMyDate, "yyyy") Debug.Print Format(dtMyDate, "dd-mmm-yy") 'For Non-Europeans: dtMyDate = Format(DateSerial(2012, 4, 24), "dd-mm-yy") Debug.Print dtMyDate Debug.Print Format(dtMyDate, "yyyy") Debug.Print Format(dtMyDate, "dd-mmm-yy") End Sub 

从评论 – 一般来说,date是在MS Excel和VBA的长期价值。 今天的date可以在这个窗口看到:

 ?clng(now) 42935 

如果你想用42935做更多的事情,你可以这样做:

 ?Format(42934,"dd-mm-yyyy") 

注意:对于所有ActiveWorkbook.Date1904 = False用户,今天是42934。 对于那些在1904开始日历的人,今天是42935-4*365-1

我写了自己的函数来扫描一个date。 排除error handling:

 Function ScanDate(s As String, Optional order As String = "DMY", Optional separator As String = "-") As Date Dim parts() As String parts = Split(s, separator) Dim day As Long, month As Long, year As Long day = parts(InStr(order, "D") - 1) month = parts(InStr(order, "M") - 1) year = parts(InStr(order, "Y") - 1) ScanDate = DateSerial(year, month, day) End Function