excel 随机排列排序

我的问题和这个差不多 http://zhidao.baidu.com/question/73843350.html
假如我的数据源在 A9 - J9
我想让它们在D1 - E5随机排列 我应该如何去改
就这么个问题 只是怎么改而已 ~~~~ 没人会?
——————————————
麻烦各位按我的思路走行吗 我的表格显然不会是我说的这么简单 排序就动了其他的数据 !!!

前面学习的排序方法都是按不同类别进行的,如果是任意排序,比如考场的座位号,没有规律,如何排序? 在D2单元格输入:=RAND() ,再双击填充公式,选中这一列任意一单元格,点击【开始】选项卡中的【排序和筛选】按钮,选择【升序】或【降序】即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-09
用VB的跳蚤算法写了个,你试下

Sub Chiefzjh()
Dim mArr(1 To 10), mR%, mC%, i%, r%, Tmp
' 取值
For i = 1 To 10
mArr(i) = ActiveSheet.Cells(9, i).Value
Next
'乱序
For i = 1 To 10
Randomize
r = Int(Rnd * 10) + 1
Tmp = mArr(i): mArr(i) = mArr(r): mArr(r) = Tmp
Next
'赋值
i = 1
For mR = 1 To 5 '行
For mC = 4 To 5 '列
Cells(mR, mC).Value = mArr(i)
i = i + 1
Next
Next
End Sub追问

试了一下没问题!但我发现我竟然不会改,悲崔呀!!
我的数据源在L36 - N46
让它们在I2 - K12 随机排列
请帮忙修改一下!不是我故弄玄虚,只是希望自己能通过修改而学到新的东西!
请这位14级的大师不要误会,特提高20分,以表诚意!

追答

源与目的地的单元格数目不一样,怎么随机排列啊?难道是随机选取?

追问

没错 都是33个
我的数据源在L36 - N46
让它们在 i 2 - K12 随机排列

追答

Sub Chiefzjh()
Dim mArr(1 To 33), mR%, mC%, i%, r%, Tmp, c As Range
' 取值
i = 1
For Each c In Range("l36:n46")
mArr(i) = c.Value
i = i + 1
Next
'乱序
For i = 1 To 33
Randomize
r = Int(Rnd * 33) + 1
Tmp = mArr(i): mArr(i) = mArr(r): mArr(r) = Tmp
Next
'赋值
i = 1
For mR = 2 To 12 '行
For mC = 9 To 11 '列
Cells(mR, mC).Value = mArr(i)
i = i + 1
Next
Next
End Sub

本回答被提问者采纳
第2个回答  2011-06-10
旁边空白列输入
=rand()
填充到底
选中这两列,以rand那列为主要关键字排序
第3个回答  2011-06-09
你的数据区与目标区不一致,麻烦很多的

你可以D1 - E5用=OFFSET($A$9,,RANDBETWEEN(0,9))
但不会每个数都有
第4个回答  2011-06-08
使用rand()函数来试试吧!`
rand():产生随机数
相似回答