怎么用excel显示排列组合所有结果的问题?

比如:黑色,花灰,灰蓝,拿铁,深灰,深蓝,中蓝这7种颜色,选4种不同的颜色,一共有35种,我想把这35种显示在Excel上。同样的道理,7选5有21种怎么让结果显示在Excel上

这个要使用VBA编程哦,我有一个VBS的脚本运行结果如下:

7选4的结果:
1 2 3 4
1 2 3 5
1 2 3 6
1 2 3 7
1 2 4 5
1 2 4 6
1 2 4 7
1 2 5 6
1 2 5 7
1 2 6 7
1 3 4 5
1 3 4 6
1 3 4 7
1 3 5 6
1 3 5 7
1 3 6 7
1 4 5 6
1 4 5 7
1 4 6 7
1 5 6 7
2 3 4 5
2 3 4 6
2 3 4 7
2 3 5 6
2 3 5 7
2 3 6 7
2 4 5 6
2 4 5 7
2 4 6 7
2 5 6 7
3 4 5 6
3 4 5 7
3 4 6 7
3 5 6 7
4 5 6 7

7选5的结果:
1 2 3 4 5
1 2 3 4 6
1 2 3 4 7
1 2 3 5 6
1 2 3 5 7
1 2 3 6 7
1 2 4 5 6
1 2 4 5 7
1 2 4 6 7
1 2 5 6 7
1 3 4 5 6
1 3 4 5 7
1 3 4 6 7
1 3 5 6 7
1 4 5 6 7
2 3 4 5 6
2 3 4 5 7
2 3 4 6 7
2 3 5 6 7
2 4 5 6 7
3 4 5 6 7

VBS程序直接使用需要把数字替换为实际的颜色,自己有兴趣也可以改写为VBA在EXCEL里面工作,我的VBS程序代码如下:
'n 选 k 的组合结果产生

Dim n
Dim k
Dim a(10001)

n = 7
k = 5
Call C(1)

Sub C(t)
Dim i
For i = a(t - 1) + 1 To n
a(t) = i
If t = k Then
Myprint
Else
Call C(t + 1)
End If
Next
End Sub

Private Sub Myprint()
Dim i, LinStr
LinStr = ""
For i = 1 To k - 1
LinStr = LinStr & a(i) & " "
Next
LinStr = LinStr & a(k)
wscript.echo LinStr
End Sub追问

这个程序怎么才可以运用在Excel上,完美展示出来。是不是还需要把数字定义为某种颜色,直接让显示效果变成颜色而不是数字。

我想把他运行在Excel上 要怎么搞

追答

温馨提示:答案为网友推荐,仅供参考
相似回答