|
|
本帖最后由 lss001 于 2020-1-12 19:12 编辑
Sub jspx2() '多列指定关键字排序
Dim x&, y&, stra$, ar
ar = [a2:d7]: x = UBound(ar) - 1: y = UBound(ar, 2) - 1
Set js = CreateObject("scriptcontrol")
js.Language = "jscript"
stra = "function aa(bb){var cc=new Array();aa=bb.toArray();" & _
"for(i=0;i<=" & x & ";i++){cc=new Array();for(j=0;j<=" & y & ";j++)" & _
"{cc[j]=aa[" & x + 1 & "*j+i];}}return cc.sort(function(x, y)" & _
"{a=new String(x[0]);b=new String(x[3]);return (x[3]==y[3])?(a.localeCompare(y[0])):" & _
"(b.localeCompare(y[3]))});}" 'x[3],y[3]表示依第4列为关键字排序
js.AddCode stra
br = Split(js.codeobject.aa(ar), ",")
For i = 1 To x + 1
For j = 1 To y + 1
ar(i, j) = br(j + (i - 1) * (y + 1) - 1)
Next
Next
[f1].Resize(x + 1, y + 1).Value = ar
End Sub |
|