[VBA ] 關於 isdate 在 民國/2/29 的判斷錯誤

看板Visual_Basic作者 (神之左手魔之右手)時間11年前 (2013/10/31 00:21), 編輯推噓2(202)
留言4則, 4人參與, 最新討論串1/1
請教關於 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

10/31 01:34, , 1F
isdate()認為那是西元102年2月29日,當然回答錯誤啦
10/31 01:34, 1F

10/31 12:17, , 2F
請問,有辦法修改程式,使判斷正確嗎?謝謝
10/31 12:17, 2F

10/31 12:44, , 3F
自己拆解字串把年度加上1911,再判斷是否為正確的日期
10/31 12:44, 3F

10/31 14:12, , 4F
你可以打成西元 然後修改格式讓EXCEL顯示民國
10/31 14:12, 4F
文章代碼(AID): #1ISJ8Av9 (Visual_Basic)
文章代碼(AID): #1ISJ8Av9 (Visual_Basic)