Sub 编号()
Dim Dic, K%, I%, Arr(), X%
Set Dic = CreateObject("scripting.dictionary")
Arr = Sheet1.Range("A1").CurrentRegion
K = 0
For X = 2 To UBound(Arr)
If Dic.exists(Arr(X, 1)) And Dic.exists(Arr(X, 1) & "FEN") And Arr(X, 4) = "" Then
Arr(X, 2) = Dic(Arr(X, 1))
ElseIf Dic.exists(Arr(X, 1)) And Dic.exists(Arr(X, 1) & "FEN") And Arr(X, 4) = "FEN" Then
K = K + 1
Dic(Arr(X, 1)) = Arr(X, 1) & "-" & K
Dic(Arr(X, 1) & "FEN") = ""
Arr(X, 2) = Dic(Arr(X, 1))
ElseIf Dic.exists(Arr(X, 1)) And Not Dic.exists(Arr(X, 1) & "FEN") And Arr(X, 4) = "FEN" Then
K = K + 1
Dic(Arr(X, 1)) = Arr(X, 1) & "-" & K
Dic(Arr(X, 1) & "FEN") = ""
Arr(X, 2) = Dic(Arr(X, 1))
ElseIf Dic.exists(Arr(X, 1)) And Not Dic.exists(Arr(X, 1) & "FEN") And Arr(X, 4) = "" Then
Arr(X, 2) = Dic(Arr(X, 1))
Else
K = K + 1
Dic(Arr(X, 1)) = Arr(X, 1) & "-" & K
Arr(X, 2) = Dic(Arr(X, 1))
End If
Next X
Sheet1.Range("A1").Resize(UBound(Arr), UBound(Arr, 2)) = Arr
Set Dic = Nothing
End Sub |