以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]含有时间信息的单元格多行内容排序  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=133801)

--  作者:天一生水
--  发布时间:2019/4/20 19:26:00
--  [求助]含有时间信息的单元格多行内容排序
怎样把含有时间信息的单元格多行内容排序?
谢谢!

此主题相关图片如下:123.jpg
按此在新窗口浏览图片

------------------
For Each dr As DataRow In DataTables("数据表").DataRows
    Dim lst As new List(of String)
    For Each f As String In dr.Lines("邮寄清单")
        ..........
        
    Next
    dr.Lines("邮寄清单") = lst
Next

--  作者:有点色
--  发布时间:2019/4/21 20:02:00
--  

循环每一行,用split取出日期值。

 

给ary1数组赋值日期;给ary2数组赋值本行的内容。

 

排序 array(ary1, ary2)

 

得到的ary2的数组,重新赋值给单元格。


--  作者:天一生水
--  发布时间:2019/4/21 21:09:00
--  
谢谢老师的指教!
请老师再给修改一下。

DataColChanging事件

\'\'\'
If e.DataCol.Name = "邮寄清单" Then
    If e.NewValue IsNot Nothing Then
    Dim ary0() As String = e.NewValue.split(";")
        For Each str As String In ary0
            Dim ary() As String = str.split(",")
            Dim ary1() As String = str(0)
            Dim ary2() As String = {str(0),str(1),str(2),str(3)}
            Array.Sort(ary1(), ary2())            
        Next
       e.NewValue + = ary2() & ;” & vbcrlf
    End If
End If
[此贴子已经被作者于2019/4/21 21:23:08编辑过]

--  作者:有点色
--  发布时间:2019/4/22 11:36:00
--  


Dim str As String = "2018-03-04, 123456;" & vbcrlf & "2017-01-01, abcdef;" & vbcrlf & "2019-01-01,你我他"
Dim ary = str.replace(chr(10), "").split(chr(13))
Dim ary1(ary.length-1) As String
Dim ary2(ary.length-1) As String
For i As Integer = 0 To ary.length-1
    ary1(i) = ary(i).split(",")(0)
    ary2(i) = ary(i)
Next
array.sort(ary1, ary2)

msgbox(String.join(vbcrlf, ary2))