|
发表于 2013-2-7 11:01
|
显示全部楼层
本楼为最佳答案
- Sub ExtractData()
- Dim d0, d, i As Long, j As Long, k As Long, l As Integer, m As Integer, n As Integer, arr, TempNo, TempArr, x, y
- arr = Range("G2:IS4")
- Set d0 = CreateObject("Scripting.Dictionary")
- Set d = CreateObject("Scripting.Dictionary")
- For j = 1 To UBound(arr, 2) - 3 Step 4
- For k = 0 To 3
- For l = 1 To 5
- For m = 1 To 5
- For n = 1 To 5
- TempNo = Mid(arr(1, j + k), l, 1) & Mid(arr(2, j + k), m, 1) & Mid(arr(3, j + k), n, 1)
- d0(TempNo) = d0(TempNo) + 1
- If d0(TempNo) > 1 Then d((j \ 4 + 1) & " " & TempNo) = d0(TempNo) '在满足条件的数据前添加数加不同组别标识
- Next n
- Next m
- Next l
- Next k
- d0.RemoveAll
- Next j
- ReDim TempArr(1 To d.Count, 1 To 2)
- For Each x In Application.Transpose(d.keys)
- y = y + 1
- TempArr(y, 1) = Split(x)(0)
- TempArr(y, 2) = Split(x)(1)
- Next
- Columns("A:C").ClearContents
- Range("A2").Resize(d.Count, 1) = Application.Index(TempArr, , 1) '组别
- Range("B2").Resize(d.Count, 1) = Application.Index(TempArr, , 2) '数字组合
- Range("C2").Resize(d.Count, 1) = Application.Transpose(d.items) '出现次数
- End Sub
复制代码
组合提取.zip
(116.45 KB, 下载次数: 5)
|
|