- Sub 亲疏加减()
- Set d = CreateObject("Scripting.Dictionary")
- s = "89012345678901234567890123456789"
- br = [{1,6,4,9;1,2,8,9;"亲","疏","加","减"}]
- For i = 0 To 9
- For j = 1 To 4
- d(i & br(3, j)) = Mid(s, i + br(1, j), 5)
- Next
- Next
- With ActiveSheet.UsedRange.Resize(, 34)
- .Offset(3, 2).Clear
- ar = .Value
- For i = 4 To UBound(ar)
- If ar(i, 2) = "" Then Exit For
- For j = 1 To 3
- s = Mid(ar(i, 2), j, 1)
- For k = 1 To 4
- ar(i, br(2, k) + j * 2) = d(s & br(3, k))
- Next
- ar(i, 16) = ar(i, 16) & IIf(InStr(ar(i - 1, 1 + j * 2), s) > 0, "亲", "疏")
- ar(i, 17) = ar(i, 17) & IIf(InStr(ar(i - 1, 8 + j * 2), s) > 0, "加", "减")
- Next
- ar(4, 16) = "": ar(4, 17) = ""
- For j = 18 To 25
- If ar(i, 16) = ar(3, j) Then
- ar(i, j) = ar(3, j)
- Cells(i, j).Interior.ColorIndex = 3
- Else
- ar(i, j) = Val(ar(i - 1, j)) + 1
- End If
- If ar(i, 17) = ar(3, j + 9) Then
- ar(i, j + 9) = ar(3, j + 9)
- Cells(i, j + 9).Interior.ColorIndex = 3
- Else
- ar(i, j + 9) = Val(ar(i - 1, j + 9)) + 1
- End If
- Next
- Next
- .Value = ar
- End With
- End Sub
复制代码 |