乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>vba</em>中如何将数组中的值进行排序?(半小时内获答加100)-excel vba

<em>vba</em>中如何将数组中的值进行排序?(半小时内获答加100)-excel vba

作者:乔山办公网日期:

返回目录:excel表格制作


定义数组
dim arr() as string ' 此处定义一个0索引的字符串数组
redim arr(1 to 100) '对数组进行重定义长度为100(常量100也可以是已经初始化的变量)
排序有很多方法,冒泡法、插入法、选择法之类的,这要看你的数组要素的类型和你排序的方式,简单点的看如下示例:
...
dim arr(1 to 5) as integer,i!,tmp as double
... ' 此处省略了为数组arr赋值的代码
for i =1 to ubound(arr)-1
tmp=arr(i)
if tmp>arr(i+1) then arr(i)=arr(i+1) '数据将从小到大排列
arr(i+1)=tmp
next

最简单的zd排序,须借助excel的函数:
Sub SmallSort()
Dim a(-1 To 3), i, b()
For i = LBound(a) To UBound(a)
a(i) = Int(Rnd * 10) '赋值给a()
Next
Rows("5:6").Delete
[a5].Resize(1, UBound(a) - LBound(a) + 1) = a
'下面是排序方法,结果放在b()内
ReDim b(1 To UBound(a) - LBound(a) + 1)
For i = 1 To UBound(b)
b(i) = Application.WorksheetFunction.Small(a, i) 'Small为从小到大,large为从大到小
Next
[a6].Resize(1, UBound(b)) = b
End Sub
debug.Print Sheets("排序").Cells(i, 2) = rain(i)

Sub 调用函数()
    aa = Array(1, 2, 3)
    MsgBox ("第一个:" & aa(0) & "第二个:" & aa(1) & "  第三个:" & aa(2))
    aa = 排序(aa)
    MsgBox ("第一个:" & aa(0) & "第二个:" & aa(1) & "  第三个:" & aa(2))
End Sub
Function 排序(aa)
    bb = aa(0)
    aa(0) = aa(1)
    aa(1) = aa(2)
    aa(2) = bb
    排序 = aa
End Function

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网