Option Explicit: Option Base 1
Dim iJ As Long, lZ As Long
Public MCotJ() As Boolean: Public MCotK() As Boolean
Public MTong()
[b]Sub ToHopCot()[/b]
Dim lCotJ As Long, lCotK As Long
Dim StrMax As String, StrMin As String
[color="Blue"]' Xep2Cot[/color]
lCotJ = Range("J36522").End(xlUp).Row: lCotK = Range("K36522").End(xlUp).Row
ReDim MTong(lCotJ + lCotK):
Dim lMin As Long, lMax As Long
If lCotJ > lCotK Then
lMax = lCotJ: lMin = lCotK
StrMax = "J": StrMin = "K"
ReDim MCotMax(lCotJ) As Boolean: ReDim MCotMin(lCotK) As Boolean
ChepDL StrMax, lCotJ
Else
lMax = lCotK: lMin = lCotJ:
StrMax = "K": StrMin = "J"
ReDim MCotMax(lCotK) As Boolean: ReDim MCotMin(lCotJ) As Boolean
ChepDL StrMax, lCotK
End If[color="Blue"]
'***[/color]
For iJ = 2 To lMin
For lZ = 1 To lMax
If Range(StrMin & CStr(iJ)).Value = Range(StrMax & CStr(lZ)).Value And MCotMax(lZ) = False Then
MCotMin(iJ) = True
MCotMax(lZ) = True: Exit For
End If
Next lZ
Next iJ[color="Blue"]
'***[/color]
For iJ = 2 To lMin
If Not MCotMin(iJ) Then
lMax = 1 + lMax
MTong(lMax) = Range(StrMin & CStr(iJ)).Value[color="Blue"]
'If iJ Mod 3 = 0 Then MsgBox MTong(lMax), , Range(StrMin & CStr(iJ)).Address
[/color] End If
Next iJ
For iJ = 2 To (lCotJ + lCotK)[color="Blue"]
' If MTong(iJ + 2) = "" Then Exit For [/color]
Range("H" & CStr(iJ)) = MTong(iJ - 1)
Next iJ
[b]End Sub
Sub ChepDL(SChu As String, L_Max As Long)[/b]
For lZ = 2 To L_Max
MTong(lZ - 1) = Range(SChu & CStr(lZ)).Value
Next lZ
[b]End Sub
Sub Xep2Cot()[/b]
Columns("J:J").Select
Selection.Sort Key1:=Range("J1"), Order1:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("K:K").Select
Selection.Sort Key1:=Range("K2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
[b]End Sub[/b]