作业帮 > 综合 > 作业

求如何使用EXCEL的函数实现数字的不重复排列与组合,用VBA也行!

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 18:38:24
求如何使用EXCEL的函数实现数字的不重复排列与组合,用VBA也行!
如图所示:要求将A列所在的数字全部排进“百位数”所有列里,将B列所有的数字全部排进“十位数”所在列里,将C列所有的数字全部排进“个位数”所在列里,使百位数、十位数、个位数形成一个分别对应A、B、C列不重复的所有的三位数组合!
你是说排成
138
139
135
.
068
069
.
067
这样的所有的吗?
代码如下
Sub test()
Dim arr, brr(), x&, y&, j&, i&, str1$
Dim d As Object
Set d = CreateObject("scripting.dictionary")
arr = Range("A1").CurrentRegion
For x = 1 To UBound(arr)
If arr(x, 1) "" Then
For y = 1 To UBound(arr)
If arr(y, 2) "" Then
For j = 1 To UBound(arr)
If arr(j, 3) "" Then
str1 = arr(x, 1) & arr(y, 2) & arr(j, 3)
If Not d.exists(str1) Then
i = i + 1
d(str1) = i
ReDim Preserve brr(1 To 3, 0 To i)
brr(1, i) = arr(x, 1)
brr(2, i) = arr(y, 2)
brr(3, i) = arr(j, 3)
End If
End If
Next j
End If
Next y
End If
Next x
brr(1, 0) = "百位数"
brr(2, 0) = "十位数"
brr(3, 0) = "个位数"
Columns("E:G").ClearContents
Range("E1").Resize(UBound(brr, 2) + 1, 3) = Application.Transpose(brr)
End Sub
运行这个宏即可得到不重复的数