閱: 5075 | 回: 1
等級(jí):初學(xué)者
-
積分:0
-
財(cái)富值:0.00
-
身份:普通用戶
字符串?dāng)?shù)組排序函數(shù)(JScript法)
今天在EH中,發(fā)現(xiàn)一個(gè)利用JScript排序字符串?dāng)?shù)組的方法,便把它摘錄如下:
Function SortArr(Arr As Variant, Optional sPd As Boolean = True)
'*******************************************
'時(shí)間:2010-3-22
'出外:http://club.excelhome.net/thread-389688-1-1.html
'作者:LDY
'功能:給指定的數(shù)據(jù)排序
'說(shuō)明:sPd參數(shù),True為順序,F(xiàn)alse為倒序。
' 其中中文為按筆劃排序。
'整理:http://www.excelba.com
'*******************************************
Dim s As String
Static sp1 As Object
If sPd Then
s = "function sortarr(arr){return(arr.toArray().sort());}" '順序
Else
s = "function sortarr(arr){return(arr.toArray().sort().reverse());}" '倒序
End If
If sp1 Is Nothing Then
Set sp1 = CreateObject("ScriptControl")
sp1.Language = "JScript"
End If
sp1.AddCode s
SortArr = sp1.Run("sortarr", Arr)
End Function
這個(gè)函數(shù)可以排序指定的數(shù)組,下面說(shuō)一個(gè)應(yīng)用,如把Excel當(dāng)前工作表中A列的數(shù)據(jù),按順序加入窗體中的復(fù)合框中(PS:復(fù)合框名稱為ComboBox1)
Private Sub UserForm_Initialize()
ComboBox1.List = Split(SortArr(Range("A1:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row).Value, False), ",")
End Sub
感覺(jué)挺快的,也挺有用的,就在此與大家分享。
今天在EH中,發(fā)現(xiàn)一個(gè)利用JScript排序字符串?dāng)?shù)組的方法,便把它摘錄如下:
Function SortArr(Arr As Variant, Optional sPd As Boolean = True)
'*******************************************
'時(shí)間:2010-3-22
'出外:http://club.excelhome.net/thread-389688-1-1.html
'作者:LDY
'功能:給指定的數(shù)據(jù)排序
'說(shuō)明:sPd參數(shù),True為順序,F(xiàn)alse為倒序。
' 其中中文為按筆劃排序。
'整理:http://www.excelba.com
'*******************************************
Dim s As String
Static sp1 As Object
If sPd Then
s = "function sortarr(arr){return(arr.toArray().sort());}" '順序
Else
s = "function sortarr(arr){return(arr.toArray().sort().reverse());}" '倒序
End If
If sp1 Is Nothing Then
Set sp1 = CreateObject("ScriptControl")
sp1.Language = "JScript"
End If
sp1.AddCode s
SortArr = sp1.Run("sortarr", Arr)
End Function
這個(gè)函數(shù)可以排序指定的數(shù)組,下面說(shuō)一個(gè)應(yīng)用,如把Excel當(dāng)前工作表中A列的數(shù)據(jù),按順序加入窗體中的復(fù)合框中(PS:復(fù)合框名稱為ComboBox1)
Private Sub UserForm_Initialize()
ComboBox1.List = Split(SortArr(Range("A1:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row).Value, False), ",")
End Sub
感覺(jué)挺快的,也挺有用的,就在此與大家分享。
我的個(gè)性簽名
等級(jí):學(xué)者