有哪位excel高手能帮我解决排列组合的问题

如何在1-40的数中将其中的一位数与其他的六位数进行组合,每位数都要与不同的六位数组合一次,按低到高的顺序比如:01020304050607 01020304050608 01020304050609........01020304050640 01020304050708 01020304050609 01020304050640.......(最后的一组数应为)34353637383940 要横向排列 有自动生成的办法吗?请高手指点

有问题:
“每位数都要与不同的六位数组合一次”,那你的第一个组合应该是“01020304050601”,是这样不?
按照你的举例看,题目又好像是不同的7个数字的组合,是那种情况?

先搞清楚题目,再VBA
--------------------------
不同的7个数字的组合:
右键一个空的工作表名称,点击“查看代码”,将下面的代码复制到其中,然后按F5键运行:
Public Sub abc()
Dim row As Integer, b(6) As Integer, c(6) As String
row = 0
For i1 = 1 To 40
b(0) = i1
For i2 = i1 + 1 To 40
b(1) = i2
For i3 = i2 + 1 To 40
b(2) = i3
For i4 = i3 + 1 To 40
b(3) = i4
For i5 = i4 + 1 To 40
b(4) = i5
For i6 = i5 + 1 To 40
b(5) = i6
For i7 = i6 + 1 To 40
b(6) = i7
For j = 0 To 6
If b(j) < 10 Then c(j) = "0" & b(j)
If b(j) > 9 Then c(j) = b(j)
Next j
row = row + 1
Cells(row, 1) = c(0) & c(1) & c(2) & c(3) & c(4) & c(5) & c(6)
Next i7, i6, i5, i4, i3, i2, i1
End Sub
运行结果就放在该空表中。

注意:我运行的情况是“溢出”,因为组合太多了,只罗列出了一部分,到第32767行才列到了“01020309173134”,第一位数字还没有变,呵呵
具体的组合数量为40*39*38*37*36*35*34=93963542400 个,需要1433791个工作表,往哪儿放啊?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-24
要用VBa,Hi吧
别Hi我了吧,共有18643560个组合,一个表都装不下哦,运算一次要10几分钟啊