Excel VBA 数字随机分组的问题

 我来答
JEGDIHTDJ
2013-06-12 · TA获得超过1175个赞
知道小有建树答主
回答量:949
采纳率:0%
帮助的人:703万
展开全部

问题这么又变了

你前面说的100个取90个

总共有17310309456440种组合

图片中的T是EXCEL进行1000³次计算的时间(在内存),18.78秒

按我的电脑运行的话,得

17310309456440 * 90 ÷1000³ * 18.78÷3600个小时

也就是8127.19个小时

要差不多一年

如果仅仅是上面的数组随机打乱次序的话

用下面的代码

Sub fdsa()
Dim arr(1 To 10, 1 To 10)
Dim i As Byte
Dim j As Byte
For j = 0 To 9
    For i = 0 To 9
    arr(i + 1, j + 1) = j + i * 10
    Next
Next
For i = 1 To 10
    For j = 1 To 10
        ii = Int(Rnd * 10 + 1)
        jj = Int(Rnd * 10 + 1)
        temp = arr(ii, jj)
        arr(ii, jj) = arr(i, j)
        arr(i, j) = temp
    Next
Next
[a1].Resize(10, 10) = arr
End Sub
更多追问追答
追问
非常感谢您的回答。我的意思应该就是100取90的组合,如果时间还是不现实的话,是否可以比如我今天运算1小时,然后暂停,明天或者后天有空继续接着第一天的结果继续运算。。还有,本人对EXCEL基本不懂。。你是否可以教如何把这些代码放入EXCEL。。或者直接把成品发到邮箱akason@qq.com里,谢谢,端午节快乐
追答

如果你要放全部数据在EXCEL里面的话

03版本的至少需要92859737个工作表,大概需要8959514G硬盘,你有这么大的硬盘吗?

07版本的至少需要90684个工作表,这个我不算了,应该差不多

真不知道你要这么多数据做什么


附件是,一次可以产生10000组

如果你还不够

按ALT+F11

双击 模块2 

可以把里面的的两个10000改大,03版本最大只能是65536

07版本的可以到1048576


太极健1969
2013-06-12 · TA获得超过9034个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3632万
展开全部
怎么个分法?随机分成几组?如何分呢??
追问
你好,我的意思应该是100取90的组合,并且把所有结果列出。。看了其他大神的回答,感觉不太现实,是否可以比如我今天运算1小时,然后暂停,明天或者后天有空继续接着第一天的结果继续运算。。本人对EXCEL基本不懂。。你是否可以教如何把这些代码放入EXCEL。。或者直接把成品发到邮箱akason@qq.com里,谢谢,端午节快乐
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式