当前位置:编程学习 > VB >>

一个复杂排序问题请大虾帮助,急!

原始表格如下:

num   标题

1.1    张三

1.2    李四

10.1.3       王五

10.1.1       赵六

6.2.3            钱七

2.3         孙八


期望排序结果,根据NUM进行升序排列

num   标题

1.1    张三

1.2    李四

2.3            钱七

6.2.3         孙八

10.1.1       赵六

10.1.3       王五
--------------------编程问答-------------------- select num 
  from testtable order by 
lpad(substr(num,1,instr(trim(num),'.')-1),3,'0') ||
decode(instr(trim(num),'.',1,2),
0,
(lpad(substr(trim(num),(instr(trim(num),'.')+1)),3,'0')) || '000',
(lpad(substr(trim(num),instr(trim(num),'.')+1,(instr(trim(num),'.',1,2))-(instr(trim(num),'.')+1)),3,'0'))
|| (lpad(substr(trim(num),(instr(trim(num),'.',1,2)+1)),3,'0'))) --------------------编程问答-------------------- 你什么数据库? --------------------编程问答-------------------- EXCEL数据?
假设数据在A,B两列

Sub macro1()
Application.ScreenUpdating = False
Dim i As Long, n As Long
[c:c] = [a:a].Value
[c:c].TextToColumns [c1], xlDelimited, , , , , , , True, ".", , , , True
With [a1].CurrentRegion.Offset(1, 0)
n = .Columns.Count
For i = n To 3 Step -1
.Sort [a2].Offset(, i - 1)
Next
.Offset(-1, 2) = ""
End With
Application.ScreenUpdating = True
End Sub

--------------------编程问答-------------------- 我用了分列的方法解决了,不过效率低。谢谢楼上大哥的帮助。 --------------------编程问答-------------------- 这个简单啊,网上搜一下就得到答案了.
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,