作者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