請教一個自寫的日期轉型處理。
說明: 假設
1). Date 函數的取回值為 "2012/3/8",則下列 DateToStr 函數會自動將它轉成 "20120308"
2). Date 函數的取回值為 "2012/3/18",則下列 DateToStr 函數會自動將它轉成 "20120318"
3). Date 函數的取回值為 "2012/10/8",則下列 DateToStr 函數會自動將它轉成 "20121008"
4). Date 函數的取回值為 "2012/10/10",則下列 DateToStr 函數會自動將它轉成 "20121010"
除了以下我自寫的 Function 外, 請問還有沒有更好的 Function 表達方式及寫法?
謝謝各位先進指導!- Sub Test()
- Dim today As String
- today = DateToStr(Date, "/")
- Cells(1, 1).Value = today
- End Sub
- Function DateToStr(cvDate, delimeter)
- Dim yr, mm, dd, i, k
-
- If (Len(cvDate) < 8 Or Mid(cvDate, 5, 1) <> delimeter) Then
- DateToStr = ""
- Exit Function
- End If
-
- yr = Mid(cvDate, 1, 4)
- mm = Mid(cvDate, 6, 2)
- If (Mid(mm, 2, 1) = delimeter) Then mm = "0" + Mid(mm, 1, 1): dd = Mid(cvDate, 8) Else dd = Mid(cvDate, 9)
- If (Len(dd) = 1) Then dd = "0" + dd
-
- DateToStr = yr + mm + dd
- k = 0
- If (Len(DateToStr) > 0) Then
- For i = 1 To Len(DateToStr)
- If (Mid(DateToStr, i, 1) < "0" Or Mid(DateToStr, i, 1) > "9") Then k = 1
- Next i
- End If
-
- If (k = 1) Then DateToStr = ""
- End Function
複製代碼 |