这个组合有969种,需要准备969个条子。
如姓名在A列,从A2开始。
VBA代码:
Sub c()
ScreenUpdating = False
p = 1
For i = 2 To 18
For j = i + 1 To 19
For k = j + 1 To 20
Cells(p, 2) = Cells(i, 1) & "," & Cells(j, 1) & "," & Cells(k, 1)
p = p + 1
Next k
Next j
Next i
ScreenUpdating = True
End Sub
我的机子用了46秒,cpu达100%
下面为你提供VBA程序,先执行宏1,
再执行宏2,每执行一次就会变。可反复执行。
'姓名在A列,从A2开始。结果在B列。
Sub 宏1()
Range("B2").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Selection.AutoFill Destination:=Range("B2:B20"), Type:=xlFillDefault
Cells(2, 3).Formula = "=a2"
Cells(3, 3).Formula = "=a3"
Cells(4, 3).Formula = "=a4"
宏2
End Sub
Sub 宏2()
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B2:B20") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:B20")
.Apply
End With
End Sub