VB 输入数字转换为日期yyyy-MM-dd格式
我要在text3中输入数字比如19831005输完自动转换为1983-10-05格式下面代码哪里错了菜鸟寻求帮助PrivateSubText3_Change()a=Tex...
我要在text3中输入数字 比如19831005输完自动转换为1983-10-05格式
下面代码 哪里错了 菜鸟寻求帮助
Private Sub Text3_Change()
a = Text3.Text
l = Len(a)
flag = True
For i = 1 To l
If InStr(1, "1234567890-", Mid(a, i, 1)) = 0 Then
flag = False
Exit For
End If
Next
If flag = False Then
Text3.Text = Left(a, Len(a) - 1)
Text3.SelStart = Len(a)
End If
If Len(Text3.Text) >= 8 Then Text3.Text = Format(Text3.Text, "yyyy-MM-dd")
End Sub
哪位大哥 会的 帮我写段代码吧 大概意思就是 输入20100109就自动转换成2010-01-09这个时间格式了 可以用的提高悬赏50分 展开
下面代码 哪里错了 菜鸟寻求帮助
Private Sub Text3_Change()
a = Text3.Text
l = Len(a)
flag = True
For i = 1 To l
If InStr(1, "1234567890-", Mid(a, i, 1)) = 0 Then
flag = False
Exit For
End If
Next
If flag = False Then
Text3.Text = Left(a, Len(a) - 1)
Text3.SelStart = Len(a)
End If
If Len(Text3.Text) >= 8 Then Text3.Text = Format(Text3.Text, "yyyy-MM-dd")
End Sub
哪位大哥 会的 帮我写段代码吧 大概意思就是 输入20100109就自动转换成2010-01-09这个时间格式了 可以用的提高悬赏50分 展开
2个回答
展开全部
不要写入text3的change事件,写入lostfocus,就是失去焦点的时候判断,
你试试输入20100201,然后点其他的地方,会自动变化的,代码如下:
Private Sub Text3_LostFocus()
If IsNumeric(Text3.Text) And Len(Text3.Text) = 8 Then
Text3.Text = Left$(Text3.Text, 4) & "-" & Mid$(Text3.Text, 5, 2) & "-" & Right$(Text3.Text, 2)
End If
End Sub
你试试输入20100201,然后点其他的地方,会自动变化的,代码如下:
Private Sub Text3_LostFocus()
If IsNumeric(Text3.Text) And Len(Text3.Text) = 8 Then
Text3.Text = Left$(Text3.Text, 4) & "-" & Mid$(Text3.Text, 5, 2) & "-" & Right$(Text3.Text, 2)
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询