|
- Sub jusT()
- Dim Ar(1 To 3) As New Dictionary, A, B, T As Boolean, Lm As Byte, K&
- Dim Arr, I&, S$(1 To 3), j As Byte, Ln As Byte, Ag(1 To 10000, 1 To 1) As String
- Arr = Range([f4], [h4].End(4)).Value
- S(1) = [f4] & [f5] & [f6] & [f7]
- S(2) = [g4] & [g5] & [g6] & [g7]
- S(3) = [h4] & [h5] & [h6] & [h7]
- T = True
- For I = 5 To UBound(Arr)
- For j = 1 To 3
- If I = 5 Then
- S(j) = S(j) & Arr(I, j)
- Else
- S(j) = Mid(S(j), Len(Arr(I - 5, j))) & Arr(I, j)
- End If
- For Ln = 1 To Len(S(j))
- Ar(j)(Mid(S(j), Ln, 1)) = Ar(j)(Mid(S(j), Ln, 1)) + 1
- Next Ln
- A = Ar(j).Keys: B = Ar(j).Items
- For Ln = 0 To UBound(A)
- If B(Ln) > 1 Then
- Ar(j).Remove A(Ln)
- End If
- Next Ln
- T = T And (Ar(j).Count > 0)
- Next j
- If T Then
- For j = 1 To Ar(1).Count
- For Ln = 1 To Ar(2).Count
- For Lm = 1 To Ar(3).Count
- If Ar(1).Keys(j - 1) <> "0" Then
- K = K + 1: Ag(K, 1) = Ar(1).Keys(j - 1) & Ar(2).Keys(Ln - 1) & Ar(3).Keys(Lm - 1)
- End If
- Next Lm, Ln, j
- End If
- Erase Ar
- Next I
- [A:A].ClearContents
- [a1].Resize(K) = Ag
- Erase Ar
- End Sub
复制代码 |
|