Excel表格上面使用VBA进行数组组合
1、点击菜单栏上面的【开发工具】,【Visual Basic】。

2、打开VBA编辑器后,在VBA编辑器的菜单栏上面点击【插入】,【模块】。

3、在VBA代码框里面输入以下程序:
Sub Zuhe()
Dim i, j, k, l, m As Long
Dim a, b, c, d As String
m = 0 '将m的初始值设为0
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")
For i = 1 To 12 '每个数值都有12次的选择机会
For j = 1 To 12
For k = 1 To 12
For l = 1 To 12
a = mysheet1.Cells(i, 1) '将第i个单元格里面的数值赋给a
If j <> i Then '如果已经选择第i个单元格里面的数值,则其他的不能再选择了
b = mysheet1.Cells(j, 1)
If k <> i And k <> j Then '如果已经选择第i、j个单元格里面的数值,则其他的不能再选择了
c = mysheet1.Cells(k, 1)
If l <> i And l <> j And l <> k Then '如果已经选择第i、j、k个单元格里面的数值,则其他的不能再选择了
d = mysheet1.Cells(l, 1)
m = m + 1
mysheet1.Cells(m, 2) = a & b & c & d '将选择出来的数值进行组合放到第2列
End If
End If
End If
Next
Next
Next
Next
End Sub

4、在这个数组组合程序里面,主要是For和If的嵌套使用。对于For语句而言,每个数都有12次被选择的机会;而If的作用是将前面已经选择的数进行排除掉,只选剩下的。
5、点击VBA编辑器工具栏里面的”运行“图标运行程序,也可以按下【F5】键运行程序。

6、程序运行完成之后,在Excel表格上面的第2列里面就能看到运算结果。组合的11880行与计算的组合数(C=12*11*10*9=11880)相符。
