0-9十个数字分成5组,每组2个,不重复,输出所有的分法,怎么弄?EXCEL VB代码

谢谢高手

第1个回答  2017-12-25
如数据0,1,2,3,4,5,6,7,8,9在A3:A12,
在B3中输入公式:=OFFSET(A$3,INT((ROW()-3)/10),,,)&OFFSET(A$3,MOD(ROW(A3)-3,10),,,) ,下拉。本回答被网友采纳
第2个回答  2017-12-25
Sub 十个数分两个一组全罗列1()
 Dim Rng As Range, Arr
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 Application.EnableEvents = False

 Arr = Array("01", "23", "45", "67", "89")
 Set Rng = [a1].Resize(1, 5)
 Rng = Arr: i = 1: j = 1: a = 7
 For d = 8 To 9
  Rng.Replace a, "|"
  Rng.Replace d, a
  Rng.Replace "|", d
  Rng.Copy Rng.Offset(i * j, 0)
  Rng = Arr
  i = i + 1
 Next d

 j = i * j: i = 1: a = 5
 Set Rng = [a1].Resize(j, 5)
 Arr = Rng
 For d = 6 To 9
  Rng.Replace a, "|"
  Rng.Replace d, a
  Rng.Replace "|", d
  Rng.Copy Rng.Offset(i * j, 0)
  Rng = Arr
  i = i + 1
 Next d

 j = i * j: i = 1: a = 3
 Set Rng = [a1].Resize(j, 5)
 Arr = Rng
 For d = 4 To 9
  Rng.Replace a, "|"
  Rng.Replace d, a
  Rng.Replace "|", d
  Rng.Copy Rng.Offset(i * j, 0)
  Rng = Arr
  i = i + 1
 Next d

 j = i * j: i = 1: a = 1
 Set Rng = [a1].Resize(j, 5)
 Arr = Rng
 For d = 2 To 9
  Rng.Replace a, "|"
  Rng.Replace d, a
  Rng.Replace "|", d
  Rng.Copy Rng.Offset(i * j, 0)
  Rng = Arr
  i = i + 1
 Next d

 Application.EnableEvents = True
 Application.DisplayAlerts = True
 Application.ScreenUpdating = True
End Sub

10的阶乘除以2的5次方除以5阶乘

本回答被提问者采纳