vba编程,按从小到大顺序输出任意10个数

急,带解释最好

Sub 由小到大生成一定范围内的随机数()
Dim i As Integer, x As Integer, k As Integer
i = 1

Dim d As Object
Set d = CreateObject("Scripting.Dictionary") '定义并创建字典对象

Randomize
x = Int((Rnd * 100) + 1) '随机生成第1个[1,100]之间的整数
d.Add x, i '将生成的值赋予字典

'以下循环生成剩余9个[1,100]的随机数,并赋予字典d(此时这10个随机数不重复)
Do While i < 10
    x = Int((Rnd * 100) + 1)
    If Not d.exists(x) Then
        i = i + 1
        d.Add x, i
    End If
Loop

'以下循环将已经生成的10个随机数,按由小到大的顺序输出,可在立即窗口查看
Do
    k = Application.WorksheetFunction.Min(d.keys)
    Debug.Print k
    d.Remove (k)
    i = i - 1
Loop Until i = 0
End Sub

温馨提示:答案为网友推荐,仅供参考