|
很费脑子,很费时间啊- Sub tt()
- Call 清空
- arr = [b1:b16]
- ReDim brr(1 To 100, 1 To 20)
- Dim drr(3, 9) '0--9出现的次数,初始化设为0
- For i = 0 To 3
- For j = 0 To 9
- drr(i, j) = 0
- Next
- Next
- Dim crr(3) '填充表中的行数控制
- x = [c2] '匹配数
- qs = Left(x, 3): hs = Right(x, 3): zs = Mid(x, 2, 3) '前三、后三、中三
- xrr = Array(x, qs, zs, hs)
- c = -4
- For n = 0 To UBound(xrr) '变量n控制匹配、前三、中三、后三
- y = xrr(n) ''第n次取数(分别取:匹配、前三、中三、后三)
- c = c + 5 '要填充的起始列
- brr(1, c) = y '填充第一个数
- p = IIf(n = 0, 1, n) '匹配、前三、中三、后三在待匹配数据中的起始位置
- For i = 1 To UBound(arr)
- If CStr(y) = Mid(arr(i, 1), p, Len(y)) Then '判断是否满足匹配、前三、中三、后三的条件
- crr(n) = crr(n) + 1 '填充列,行数+1
- k = crr(n)
- For j = 0 To 3 '向下取4数,填充后4列
- xx = arr(i + j, 1)
- yy = Mid(xx, p, Len(y))
- brr(k, c + j + 1) = yy
- If j > 0 Then '计算各数出现的次数(不含本数)
- For kk = 1 To Len(yy)
- yyy = Mid(yy, kk, 1)
- drr(n, yyy) = drr(n, yyy) + 1
- Next
- End If
- Next
- End If
- Next
- Next
- [c2].Resize(4, 20) = brr '显示结果
- [x2].Resize(4, 10) = drr
- Call 排序
- End Sub
- Sub 排序()
- For i = 2 To 5
- Cells(2 * i - 2, "AI").Resize(1, 10) = Cells(i, "X").Resize(1, 10).Value
- Cells(2 * i - 1, "AI").Resize(1, 10) = Cells(1, "X").Resize(1, 10).Value
- Cells(2 * i - 2, "AI").Resize(2, 10).Sort Orientation:=xlLeftToRight, _
- Key1:=Cells(2 * i - 2, "AI").Resize(1, 10), Order1:=xlDescending, _
- Key2:=Cells(2 * i - 1, "AI").Resize(1, 10), Order2:=xlDescending
- Next
- End Sub
- Sub 清空()
- [d2:v10,x2:ag10,ai2:ar10] = ""
- End Sub
复制代码 |
评分
-
查看全部评分
|