excel中的VB,如何将时间为yyyymmdd的格式进行判断
比如我输入20141908,因为19不是正确月份,因此抛出异常。但我写的抛不出异常代码如下rdate=Left(Cells(row,3).Value,4)+"-"+Mid...
比如 我输入 20141908,因为19不是正确月份,因此抛出异常。但我写的抛不出异常
代码如下
rdate = Left(Cells(row, 3).Value, 4) + "-" + Mid(Cells(row, 3).Value, 5, 2) + "-" + Right(Cells(row, 3).Value, 2)
If IsDate(rdate) = False Then
IsNumberValue = "行" & row & "列 3 请输入正确的日期,数据格式:YYYYMMDD,如:20140808" & "。 "
result = False
End If
If (CDate(rdate) < Format(Now(), "yyyy-MM-dd")) Then
IsNumberValue = "行" & row & "列 3 截止时间小于当前时间!"
result = False
End If
If (Cells(row, column).Value < Format(Now(), "yyyymmdd")) Then
MsgBox "行" & row & "列" & column & " end date小于当前时间!"
result = False
End If
Format(Now(), "yyyymmdd") 是为20140912 么? Cells(row, column).Value = 20141109 时间是大于当前时间的,但是抛异常了 展开
代码如下
rdate = Left(Cells(row, 3).Value, 4) + "-" + Mid(Cells(row, 3).Value, 5, 2) + "-" + Right(Cells(row, 3).Value, 2)
If IsDate(rdate) = False Then
IsNumberValue = "行" & row & "列 3 请输入正确的日期,数据格式:YYYYMMDD,如:20140808" & "。 "
result = False
End If
If (CDate(rdate) < Format(Now(), "yyyy-MM-dd")) Then
IsNumberValue = "行" & row & "列 3 截止时间小于当前时间!"
result = False
End If
If (Cells(row, column).Value < Format(Now(), "yyyymmdd")) Then
MsgBox "行" & row & "列" & column & " end date小于当前时间!"
result = False
End If
Format(Now(), "yyyymmdd") 是为20140912 么? Cells(row, column).Value = 20141109 时间是大于当前时间的,但是抛异常了 展开
1个回答
展开全部
得把判断写在事件里面.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Row = Target.Row
rdate = Left(Cells(Row, 3).Value, 4) + "-" + Mid(Cells(Row, 3).Value, 5, 2) + "-" + Right(Cells(Row, 3).Value, 2)
If IsDate(rdate) = False Then
MsgBox "行" & Row & "列 3 请输入正确的日期,数据格式:YYYYMMDD,如:20140808" & "。 "
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Row = Target.Row
rdate = Left(Cells(Row, 3).Value, 4) + "-" + Mid(Cells(Row, 3).Value, 5, 2) + "-" + Right(Cells(Row, 3).Value, 2)
If IsDate(rdate) = False Then
MsgBox "行" & Row & "列 3 请输入正确的日期,数据格式:YYYYMMDD,如:20140808" & "。 "
End If
End If
End Sub
追问
Format(Now(), "yyyymmdd") 是为20140912 么? Cells(row, column).Value = 20141109 时间是大于当前时间的,但是抛异常了
追答
CDate(rdate) < Now() 即可. CDate(rdate) < Format(Now(), "yyyy-MM-dd")
错误在 日期与字符串比较.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询