標題:
[發問]
請教一個自寫的日期轉型處理
[打印本頁]
作者:
c_c_lai
時間:
2012-4-19 10:01
標題:
請教一個自寫的日期轉型處理
請教一個自寫的日期轉型處理。
說明: 假設
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
複製代碼
作者:
oobird
時間:
2012-4-19 10:51
Sub Test()
[a1] = Format(Date, "yyyymmdd")
End Sub
作者:
c_c_lai
時間:
2012-4-19 11:04
回復
2#
oobird
原來這麼簡單啦!
不瞭解 VBA 用法的人就是只會土法煉鋼,
感謝您的指導!
作者:
chen_cook
時間:
2012-4-19 15:12
儲存格格式自訂修改也是可以的
作者:
eggdd
時間:
2012-4-20 14:23
直接在儲存格格式自訂成
yyyymmdd
作者:
c_c_lai
時間:
2012-4-20 16:04
回復
5#
eggdd
多謝告知, 我是應用在程式內, 所以後改用了 Format(Date, "yyyymmdd") 的處理。
謝謝您!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)