Board logo

標題: [發問] 請問此兩句語法有何差別??? [打印本頁]

作者: t8899    時間: 2013-10-2 19:44     標題: 請問此兩句語法有何差別???

If Format(Now, "hh:mm:ss") = "13:24:22" Then   ........
If TimeValue(Now) = TimeValue("13:24:22 ") Then  ........
作者: luhpro    時間: 2013-10-2 23:46

If Format(Now, "hh:mm:ss") = "13:24:22" Then   ........
If TimeValue(Now) = TimeValue("13:24:22 ")  ...
t8899 發表於 2013-10-2 19:44

在 即時運算視窗中打上 :
?TypeName(Format(Now, "hh:mm:ss"))
會得到  String

?TypeName(TimeValue("13:24:22 ") )
會得到  Date

所以兩式中做比較的資料格式是不同的,
字串與日期的大小比較在某些情形下結果會不同,
作者: t8899    時間: 2013-10-3 06:19

在 即時運算視窗中打上 :
?TypeName(Format(Now, "hh:mm:ss"))
會得到  String

?TypeName(TimeValue ...
luhpro 發表於 2013-10-2 23:46


此兩句掛在 Private Sub Worksheet_Calculate() 裡
判斷系統時間,那一句會比較適當?
作者: luhpro    時間: 2013-10-3 22:32

回復 3# t8899
雖然實際使用上可能看不出差異,
但我還是建議用 TimeValue("") 因為它是採用 Date (or Time) 格式.
作者: c_c_lai    時間: 2013-10-4 07:14

此兩句掛在 Private Sub Worksheet_Calculate() 裡
判斷系統時間,那一句會比較適當?
t8899 發表於 2013-10-3 06:19

我也認同 luhpro 大大的說詞:
If TimeValue(Now) = TimeValue("13:24:22 ") Then  ........
使用 Date 型態做資料比對 (Compare) 會比使用字串比對來得適當、且較不易出錯。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)