Option ExplicitPrivate Sub Form_Load() Dim aa As String aa = "20041309" aa = Mid(aa, 1, 4) & "-" & Mid(aa, 5, 2) & "-" & Mid(aa, 7, 2) 'MsgBox aa If IsDate(aa) = True Then MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日"
MsgBox "是有效的日期" Else MsgBox "不是有效的日期"End IfEnd Sub 我测试了这样显示的不是有效的日期" 我主要是先把你的字符串转化成日起类型在判断的
真不好意思,上一个代码有错误,这个我调试了,没问题 Option ExplicitPrivate Sub Form_Load() Dim aa As String aa = "20041309" aa = Right(Left(aa, Len(aa) - 4), Len(aa) - 4) & "-" & Right(Left(aa, Len(aa) - 2), 2) & "-" & Right(aa, 2) 'MsgBox aa If IsDate(aa) = True Then MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日"
MsgBox "是有效的日期" Else MsgBox "不是有效的日期"End IfEnd Sub
若年是2位的,不能用ISDATE()进行判断呀,如041301不是有效日期,而041201是有效日期,但现在我用ISDATE()判断出上面两个都是有效日期,下面是我的代码(运行结果是日期是有效的) Private Sub Command1_Click() Dim mstring As String Dim mstr As String Dim mdate As Date mstring = "041312" mstr = Mid(mstring, 1, 2) & "-" & Mid(mstring, 3, 2) & "-" & Mid(mstring, 5, 2) 'mdate = Format(mstr, "YYYY-MM-DD") If IsDate(mstr) = True Then MsgBox "日期有效" & mstr Else MsgBox "日期无效" & mstr End If End Sub
Private Sub Command1_Click() Dim aa As String aa = "041009" aa = Format(aa, "000000") aa = Mid(aa, 1, 2) & "-" & Mid(aa, 3, 2) & "-" & Mid(aa, 5, 2) aa = Format(aa, "yyyy-mm-dd") If IsDate(aa) = True Then MsgBox
Dim aa As String
aa = "20041009"
aa = Mid(aa, 1, 4) & "-" & Mid(aa, 5, 2) & "-" & Mid(aa, 7, 2)
'MsgBox aa
If IsDate(aa) = True Then
msgbox year(aa) & 年 & month(aa) & 月 & day(aa) & 日
MsgBox "是有效的日期"
Else
MsgBox "不是有效的日期"End If
我的意思是在ISDATE()函数中判断时就是判断出来,如041301不是有效日期,而041201是有效日期,但现在我用ISDATE()判断出上面两个都是有效日期
Dim aa As String
aa = "20041309"
aa = Mid(aa, 1, 4) & "-" & Mid(aa, 5, 2) & "-" & Mid(aa, 7, 2)
'MsgBox aa
If IsDate(aa) = True Then
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日"
MsgBox "是有效的日期"
Else
MsgBox "不是有效的日期"End IfEnd Sub
我测试了这样显示的不是有效的日期"
我主要是先把你的字符串转化成日起类型在判断的
Option ExplicitPrivate Sub Form_Load()
Dim aa As String
aa = "20041309"
aa = Right(Left(aa, Len(aa) - 4), Len(aa) - 4) & "-" & Right(Left(aa, Len(aa) - 2), 2) & "-" & Right(aa, 2)
'MsgBox aa
If IsDate(aa) = True Then
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日"
MsgBox "是有效的日期"
Else
MsgBox "不是有效的日期"End IfEnd Sub
Private Sub Command1_Click()
Dim mstring As String
Dim mstr As String
Dim mdate As Date
mstring = "041312"
mstr = Mid(mstring, 1, 2) & "-" & Mid(mstring, 3, 2) & "-" & Mid(mstring, 5, 2)
'mdate = Format(mstr, "YYYY-MM-DD")
If IsDate(mstr) = True Then
MsgBox "日期有效" & mstr
Else
MsgBox "日期无效" & mstr
End If
End Sub
mstr = Mid(mstring, 3, 2) & "-" & Mid(mstring, 5, 2) & "-" & Mid(mstring, 1, 2)
Dim aa As String
aa = "041009"
aa = Format(aa, "000000")
aa = Mid(aa, 1, 2) & "-" & Mid(aa, 3, 2) & "-" & Mid(aa, 5, 2)
aa = Format(aa, "yyyy-mm-dd")
If IsDate(aa) = True Then
MsgBox
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日" & vbCrLf & "是有效的日期"
Else
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日" & vbCrLf & "不是有效的日期"End If
End Sub
Dim aa As String
aa = "041009"
aa = Format(aa, "000000")
aa = Mid(aa, 1, 2) & "-" & Mid(aa, 3, 2) & "-" & Mid(aa, 5, 2)
aa = Format(aa, "yyyy-mm-dd")
If IsDate(aa) = True Then
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日" & vbCrLf & "是有效的日期"
Else
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日" & vbCrLf & "不是有效的日期"End If
End Sub
aa = Format(aa, "yyyy-mm-dd")
IsDate(aa)
这个是你写的代码,我在aa中赋值"041309"就不行,不是判断出是有效的日期
Dim aa As String
aa = "041309"
aa = Right(Left(aa, Len(aa) - 4), Len(aa) - 2) & "-" & Right(Left(aa, Len(aa) - 2), 2) & "-" & Right(aa, 2)
'MsgBox aa
If IsDate(aa) = True Then
MsgBox Year(aa) & "年" & Month(aa) & "月" & Day(aa) & "日"
MsgBox "是有效的日期"
Else
MsgBox "不是有效的日期"End If
另外不能用format()函数转换,因在如果转换一个无效的日期就出错
你把它的年月日截出来再&再来,就行呀!