58个数字,任意数字组合发生器6个数字多少种组合?

查看: 8523|回复: 5
我有已知的6个数字,如何生成6位的所有排列组合?
阅读权限20
在线时间 小时
我有已知的6个数字(0,0,3,7,8,9),如何用EXCEL生成6位的所有排列组合?
希望版主 早日看到提供解答
[ 本帖最后由 zhongshen197 于
12:54 编辑 ]
阅读权限20
在线时间 小时
顶一下,请版主或是老手帮助解决 一下,谢谢。
阅读权限20
在线时间 小时
在坛子里找到这样个程序,修改后运行成功,有720个结果
Sub PermutationsFromRange()
Dim DestRange As Object
Dim PermString As Variant
Dim NewPerm As String
Dim SepChar As String
Dim NumOfElements As Integer
Dim NumOfPerm As Double
Dim Factorial(1 To 6)
Dim Counter1 As Long
Dim Counter2 As Long
Dim Rotate As Integer
& & 'Max 13 elements in PermString
& & PermString = Range(&A1:A6&)
& & SepChar = &,&
& & NumOfElements = UBound(PermString)
& & NumOfPerm = Application.Fact(NumOfElements)
& & For Counter1 = 1 To NumOfElements
& && &&&Factorial(Counter1) = Application.Fact(NumOfElements - Counter1)
& & Next Counter1
& & Worksheets.Add
& & Set DestRange = Range(&a1&)
& & For Counter1 = 1 To NumOfElements
& && &&&NewPerm = NewPerm & PermString(Counter1, 1) & SepChar
& & Next Counter1
& & DestRange.Value = Left(NewPerm, Len(NewPerm) - Len(SepChar))
& & For Counter1 = 2 To NumOfPerm
& && &&&NewPerm = &&
& && &&&If Counter1 / 2 = Int(Counter1 / 2) Then
& && && && &Rotate = NumOfElements - 1
& && &&&Else
& && && && &For Counter2 = 1 To NumOfElements - 2
& && && && && & If Counter1 Mod Factorial(Counter2) = 1 Then
& && && && && && &&&Rotate = Counter2
& && && && && && &&&Exit For
& && && && && & End If
& && && && &Next Counter2
& && &&&End If
& && &&&For Counter2 = 1 To Int((NumOfElements - Rotate + 1) / 2)
& && && && &Dummy = PermString(Rotate + Counter2 - 1, 1)
& && && && &PermString(Rotate + Counter2 - 1, 1) = PermString(NumOfElements - Counter2 + 1, 1)
& && && && &PermString(NumOfElements - Counter2 + 1, 1) = Dummy
& && &&&Next Counter2
& && &&&For Counter2 = 1 To NumOfElements
& && && && &NewPerm = NewPerm & PermString(Counter2, 1) & SepChar
& && &&&Next Counter2
& && &&&DestRange.Offset(Counter1 - 1) = Left(NewPerm, Len(NewPerm) - Len(SepChar))
& & Next Counter1
Set DestRange = Nothing
阅读权限95
在线时间 小时
& & & & & & & &
两种方法,供你选择
硬循环法远比ADO法快
& &&&'撰写:老朽
& && &'网址:
& && &'日期: 下午 01:22:55
Sub ADO法()
& & Dim My_Cn
& & Dim My_Sql As String
& & With Sheets(&Ado法&)
& && &&&.Cells.Clear
& && &&&Set My_Cn = CreateObject(&adodb.connection&)
& && &&&My_Sql = &SELECT * FROM [Sheet1$A1:A100] as A1,[Sheet1$A1:A100] as A2,[Sheet1$A1:A100] as A3,[Sheet1$A1:A100] as A4,[Sheet1$A1:A100] as A5,[Sheet1$A1:A100] as A6&
& && &&&My_Cn.Open &provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;HDR=yes';data source=& & ThisWorkbook.FullName
& && &&&.Range(&A1&).CopyFromRecordset My_Cn.Execute(My_Sql)
& && &&&My_Cn.Close
& && &&&Set My_Cn = Nothing
& & End With
& && &'撰写:老朽
& && &'网址:
& && &'日期: 下午 01:22:56
Sub 硬循环法()
& & Arr = Sheet1.[A2:A7]
& & Dim Brr(1 To 46656, 1 To 6)
& & For i = 1 To 6
& && &&&For j = 1 To 6
& && && && &For k = 1 To 6
& && && && && & For l = 1 To 6
& && && && && && &&&For m = 1 To 6
& && && && && && && && &For n = 1 To 6
& && && && && && && && && & Brr(o, 1) = Arr(i, 1)
& && && && && && && && && & Brr(o, 2) = Arr(j, 1)
& && && && && && && && && & Brr(o, 3) = Arr(k, 1)
& && && && && && && && && & Brr(o, 4) = Arr(l, 1)
& && && && && && && && && & Brr(o, 5) = Arr(m, 1)
& && && && && && && && && & Brr(o, 6) = Arr(n, 1)
& && && && && && && && && & o = o + 1
& && && && && && && && &Next
& && && && && && &&&Next
& && && && && & Next
& && && && &Next
& && &&&Next
& & Sheet3.[A1:F46656] = Brr
阅读权限95
在线时间 小时
(11.5 KB, 下载次数: 250)
13:26 上传
点击文件名下载附件
这是附件,可以对照使用,数据在SHEET1中
阅读权限50
在线时间 小时
有46656个结果
Sub 排列组合()
Dim a%, b%, c%, d%, e%, f%, n&
ary = Array(0, 0, 3, 7, 8, 9)
For a = 0 To 5
For b = 0 To 5
For c = 0 To 5
For d = 0 To 5
For e = 0 To 5
For f = 0 To 5
Cells(n, 1) = ary(a) & ary(b) & ary(c) & ary(d) & ary(e) & ary(f)
Next: Next: Next: Next: Next: Next
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师}

我要回帖

更多关于 excel 任意数字组合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信