例如,我有数字1,9,7,4,我想随机化他们的位置,所以我会得到9,1,4,7或7,1,9,4等等。你知道怎么做吗?谢谢
发布于 2018-05-29 07:49:12
下面是一个基本vba随机化为一个字典对象。
Dim vals As Variant, ord As Object
Set ord = CreateObject("scripting.dictionary")
vals = Array(1, 4, 7, 9)
Do While ord.Count < (UBound(vals) + 1)
ord.Item(vals(Application.RandBetween(LBound(vals), UBound(vals)))) = vbNullString
Loop
Debug.Print Join(ord.keys, ", ")
发布于 2018-05-29 08:07:14
这里有一个更简单的例子:(我希望我没有为你做作业)
Sub sub1()
Dim i1&, i2&, iswap&, a4 As Variant
a4 = Array(1, 9, 7, 4)
For i1 = 0 To 3
i2 = Int(Rnd() * 4) ' random integer 0 to 3
iswap = a4(i1) ' swap(a4(i1), a4(i2))
a4(i1) = a4(i2)
a4(i2) = iswap
Next i1
Debug.Print a4(0); a4(1); a4(2); a4(3) ' Ctl-G to view, F7 to get back to code
End Sub
发布于 2018-06-04 10:55:52
您没有指定基本方言,因此以下是一些代码:
a(1) = 1 : a(2) = 4 : a(3) = 7 : a(4) = 9
FOR l = 1 TO 4
SWAP a(l), a(INT(RND * 4 + 1))
NEXT
END
https://stackoverflow.com/questions/50574537
复制相似问题