举个排序的例子,要对A1:A20的单元格区域进行排序,区域内的内容为1-100的随机整数, 规则是大于50的倒序排列,小于50的正序排列。将结果显示在B1:B20的区域里。
在这个例子中,首先定义一个Sub过程来随机生成A1:A20区域的内容。 代码如下:
' 创建随机整数,并赋值Sub createRandom(times As Integer) Dim num As Integer Dim arr() As Integer ReDim arr(times) For num = 1 To times Randomize (1) ' 初始化随机数 arr(num) = Rnd(1) * 10000 100 ' Rnd随机数函数生成0~1的浮点数 ' 上面使用了运算符进行取整,也可以根据需求使用vba内部的取整函数达到同样的效果 ' arr(num) = Int(Rnd(1) * 100) ' arr(num) = Round(Rnd(1) * 100) Range("A" & num) = arr(num) Next numEnd Sub' 自定义排序Function defSort(rgs) As Variant Dim arr() As Integer Dim total As Integer Dim rg Dim st As Inte