以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]日期的格式能更改吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97319)

--  作者:jick0526
--  发布时间:2017/3/9 20:35:00
--  [求助]日期的格式能更改吗?
狐爸,请问下,日期的格式比如日2017-02-06能更改成20170206这样的格式吗?因为从其他EXCEL上复制的日期格式是20170206这样子的,我把它复制的日期的列里复制不来,碰到这种问题该怎么办?
--  作者:有点色
--  发布时间:2017/3/9 20:48:00
--  

 放一个字符列存放你的 20170206

 

 然后datacolchanged事件写代码

 

If e.DataCol.name = "第一列" Then
    If e.NewValue.length = 8 Then
        Dim d As Date = new Date(e.NewValue.Substring(0,4), e.newvalue.substring(4,2), e.newvalue.substring(6,2))
        e.DataRow("第二列")= d
    End If
End If


--  作者:jick0526
--  发布时间:2017/3/9 20:56:00
--  
完美解决,谢谢老师!
--  作者:jick0526
--  发布时间:2017/4/30 15:18:00
--  
If e.DataCol.name = "第一列" Then
 If e.NewValue.length = 8 Then
 Dim d As Date = new Date(e.NewValue.Substring(0,4), e.newvalue.substring(4,2), e.newvalue.substring(6,2))
 e.DataRow("第二列")= d
 End If
End If

老师,这段代码能不能帮我加个错误提示框代码,当格式错误不能转换时,跳出提示框,“您的日期格式错误,不能转换”,代码改怎么写,谢谢!

--  作者:有点蓝
--  发布时间:2017/5/2 8:42:00
--  
If e.DataCol.name = "第一列" Then
    If e.NewValue.length = 8 Then
        Dim d As Date
        Dim s As String =  e.NewValue.Insert(6,"-").Insert(4,"-")
        If Date.TryParse(s,d) Then
            e.DataRow("第二列")= d
        Else
            msgbox("无效日期格式: " & s)
        End If
    End If
End If