|
发表于 2011-10-27 19:35
|
显示全部楼层
本楼为最佳答案
这样行不行?永远不会回到原位置!- Sub test()
- Dim n, ARR, BRR, x, Y, P
- n = 9
- ARR = Range("A1").Resize(n, 1)
- BRR = Range("A1").Resize(n, 1)
- For Y = 1 To n
- 100:
- x = Int(Rnd() * n + 1) 'x值域[1,n]
- If ARR(Y, 1) = BRR(x, 1) Then GoTo 100
- If ARR(x, 1) = BRR(Y, 1) Then GoTo 100
- P = BRR(Y, 1)
- BRR(Y, 1) = BRR(x, 1)
- BRR(x, 1) = P
- Next
- Range("b1").Resize(n, 1) = BRR
- End Sub
复制代码 |
|