作者kgreatheart (神之左手魔之右手)
看板Visual_Basic
標題[VBA ] 關於 isdate 在 民國/2/29 的判斷錯誤
時間Thu Oct 31 00:21:27 2013
請教關於 isdate的問題
工作表如下所示:(民國/月/日)
---------------------------------
A
1 101/02/28
2 101/02/29
---------------------------------
With ActiveSheet
MsgBox IsDate(.Range("A1").Value) 'True
MsgBox IsDate(.Range("A2").Value) 'False,但民國101年2月29日確實有這天
End With
想寫一段程式,在判斷儲存格為"日期",則將 (民國/月/日) 轉成 (西元/月/日)
但在判斷 (2/29) ,卻會出現錯誤,請教如下程式該如何作修改,謝謝。
Do While IsDate(PT) = True
temp = PT.Value
temp = Left(temp, InStr(temp, "/") - 1) + 1911 & "/" & Mid(temp, InStr(temp, "/") + 1)
PT.Value = temp
Set PT = PT.Offset(1, 0)
Loop
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.12.249
1F:→ MOONRAKER:isdate()認為那是西元102年2月29日,當然回答錯誤啦 10/31 01:34
2F:→ kgreatheart:請問,有辦法修改程式,使判斷正確嗎?謝謝 10/31 12:17
3F:推 fumizuki:自己拆解字串把年度加上1911,再判斷是否為正確的日期 10/31 12:44
4F:推 ClubT:你可以打成西元 然後修改格式讓EXCEL顯示民國 10/31 14:12