excel vba 排列组合
我想求出所有可能组合的结果,哪位高人能告诉小弟一下,每组的数字个数不一样,并且不连续,比如第一组1,3,4;第二组3,4;第三组4,5,6;第四组7,第五组8,9;然后求...
我想求出所有可能组合的结果,哪位高人能告诉小弟一下,每组的数字个数不一样,并且不连续,比如第一组1,3,4;第二组3,4;第三组4,5,6;第四组7,第五组8,9;然后求出所有组合的情况,在excel显示,谢谢啦
展开
4个回答
展开全部
0~9每个数字的组合,下面是VBA:
----
Public Sub zuhe()
Dim a$, b() As String, n%, m&, i&, j%, s$, ff$, c As Range
Set c = [a1] '结果放置的位置,A列
n = 10 'n<=10,改变n值,可以取得其他数字的组合,如n=3,则取得0~2的数字组合
m = 2 ^ n - 1
For i = 1 To n
a = a & (i - 1)
Next
ReDim b(1 To m)
ff = String(n, "0")
For i = LBound(b) To UBound(b)
s = Format(DECtoBIN(i), ff)
For j = 1 To n
If Mid(s, j, 1) * 1 Then b(i) = Mid(a, n - j + 1, 1) & "," & b(i)
Next
b(i) = "'" & Left(b(i), Len(b(i)) - 1)
Next
c.EntireColumn.ClearContents
For i = LBound(b) To UBound(b)
c(i) = b(i)
Next
MsgBox "ok!" & Chr(10) & Chr(10) & a & " 数字组合的总个数为: " & m
End Sub
Public Function DECtoBIN(ByVal Dec) As String
DECtoBIN = ""
Do While Dec > 0
DECtoBIN = Dec Mod 2 & DECtoBIN
Dec = Dec \ 2
Loop
End Function
----
Public Sub zuhe()
Dim a$, b() As String, n%, m&, i&, j%, s$, ff$, c As Range
Set c = [a1] '结果放置的位置,A列
n = 10 'n<=10,改变n值,可以取得其他数字的组合,如n=3,则取得0~2的数字组合
m = 2 ^ n - 1
For i = 1 To n
a = a & (i - 1)
Next
ReDim b(1 To m)
ff = String(n, "0")
For i = LBound(b) To UBound(b)
s = Format(DECtoBIN(i), ff)
For j = 1 To n
If Mid(s, j, 1) * 1 Then b(i) = Mid(a, n - j + 1, 1) & "," & b(i)
Next
b(i) = "'" & Left(b(i), Len(b(i)) - 1)
Next
c.EntireColumn.ClearContents
For i = LBound(b) To UBound(b)
c(i) = b(i)
Next
MsgBox "ok!" & Chr(10) & Chr(10) & a & " 数字组合的总个数为: " & m
End Sub
Public Function DECtoBIN(ByVal Dec) As String
DECtoBIN = ""
Do While Dec > 0
DECtoBIN = Dec Mod 2 & DECtoBIN
Dec = Dec \ 2
Loop
End Function
展开全部
每组数字从哪里获取,是在表格里还是手动输入,如果是放在表格里的,是在不同的单元格还是在同一个单元格。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-21
展开全部
简单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要组合的数据是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询