EXCEL 1--10个数字不重复具体排列组合
如何使用EXCEL把1--10每5个一组(不重复)具体排列出来,不会VB,有没有快速的办法,把252个组合排列出来这一种类型的252个组合谁能帮忙排一下。数字中间有空格一...
如何使用EXCEL 把1--10 每5个一组(不重复)具体排列出来,
不会VB,有没有快速的办法,把252个组合排列出来
这一种类型的 252个组合 谁能帮忙排一下。
数字中间 有空格一下。
1--10 不是0
谢谢 展开
不会VB,有没有快速的办法,把252个组合排列出来
这一种类型的 252个组合 谁能帮忙排一下。
数字中间 有空格一下。
1--10 不是0
谢谢 展开
推荐于2018-02-23 · 知道合伙人软件行家
关注
展开全部
条件1:不包含0
条件2:不得有重复数字
范围:12345~98765
符合的数字有 57205个,
右击工作表标签→查看代码,把下面的代码贴到VBE中,按F5运行,结果粘贴到A列
Sub chiefzjh()
Dim mStr$, i, k%, Tmp$, mDic
Set mDic = CreateObject("scripting.dictionary")
mStr = "123456789"
For i = 12345 To 98765
If InStr(i, "0") = 0 Then 'No "O" exit
For k = 1 To 4 'No duplicate finger
If 5 - Len(Replace(i, Mid(i, k, 1), "")) >= 2 Then Exit For
Next k
mDic.Add i, "" 'Add to Dic
End If
Next i
i = mDic.Count
Range("a1").Resize(i, 1) = WorksheetFunction.Transpose(mDic.keys)
End Sub
条件2:不得有重复数字
范围:12345~98765
符合的数字有 57205个,
右击工作表标签→查看代码,把下面的代码贴到VBE中,按F5运行,结果粘贴到A列
Sub chiefzjh()
Dim mStr$, i, k%, Tmp$, mDic
Set mDic = CreateObject("scripting.dictionary")
mStr = "123456789"
For i = 12345 To 98765
If InStr(i, "0") = 0 Then 'No "O" exit
For k = 1 To 4 'No duplicate finger
If 5 - Len(Replace(i, Mid(i, k, 1), "")) >= 2 Then Exit For
Next k
mDic.Add i, "" 'Add to Dic
End If
Next i
i = mDic.Count
Range("a1").Resize(i, 1) = WorksheetFunction.Transpose(mDic.keys)
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用VB不好弄的!我用一种比较笨的算法,然后用VBA生成的,自己看附件哈,应该就是你说的那样的,
Option Explicit
Sub combin()
Dim i, j, l, k, n, m
For i = 1 To 6
For j = i + 1 To 7
For l = j + 1 To 8
For k = l + 1 To 9
For n = k + 1 To 10
m = m + 1
Sheet1.Range("a" & m) = i & " " & j & " " & l & " " & k & " " & n
Next n
Next k
Next l
Next j
Next i
End Sub
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub 组合()
intRow = 1
Dim arr1(4)
For i = 1 To 10
arr1(0) = i
For j = 1 To 10
If (arr1(0) < j) Then
arr1(1) = j
For k = 1 To 10
If (arr1(0) < k And arr1(1) < k) Then
arr1(2) = k
For l = 1 To 10
If (arr1(0) < l And arr1(1) < l And arr1(2) < l) Then
arr1(3) = l
For m = 1 To 10
If (arr1(0) < m And arr1(1) < m And arr1(2) < m And arr1(3) < m) Then
arr1(4) = m
Cells(intRow, 1).Value = Join(arr1, " ")
intRow = intRow + 1
End If
Next
End If
Next
End If
Next
End If
Next
Next
End Sub
如果是要排列,则把所有的<都改成<>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询