阅: 3529 | 回: 1
等级:初学者
- 积分:0
- 财富值:0.0
- 身份:普通用户
字符串数组排序函数(JScript法)
今天在EH中,发现一个利用JScript排序字符串数组的方法,便把它摘录如下:
Function SortArr(Arr As Variant, Optional sPd As Boolean = True)
'*******************************************
'时间:2010-3-22
'出外:http://club.excelhome.net/thread-389688-1-1.html
'作者:LDY
'功能:给指定的数据排序
'说明:sPd参数,True为顺序,False为倒序。
' 其中中文为按笔划排序。
'整理: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
这个函数可以排序指定的数组,下面说一个应用,如把Excel当前工作表中A列的数据,按顺序加入窗体中的复合框中(PS:复合框名称为ComboBox1)
Private Sub UserForm_Initialize()
ComboBox1.List = Split(SortArr(Range("A1:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row).Value, False), ",")
End Sub
感觉挺快的,也挺有用的,就在此与大家分享。
今天在EH中,发现一个利用JScript排序字符串数组的方法,便把它摘录如下:
Function SortArr(Arr As Variant, Optional sPd As Boolean = True)
'*******************************************
'时间:2010-3-22
'出外:http://club.excelhome.net/thread-389688-1-1.html
'作者:LDY
'功能:给指定的数据排序
'说明:sPd参数,True为顺序,False为倒序。
' 其中中文为按笔划排序。
'整理: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
这个函数可以排序指定的数组,下面说一个应用,如把Excel当前工作表中A列的数据,按顺序加入窗体中的复合框中(PS:复合框名称为ComboBox1)
Private Sub UserForm_Initialize()
ComboBox1.List = Split(SortArr(Range("A1:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row).Value, False), ",")
End Sub
感觉挺快的,也挺有用的,就在此与大家分享。
我的个性签名