Public Sub CongCham()
Dim Rng, sArr, tArr, dArr, I As Long, J As Long, Col As Long, R As Long
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet9
Set Rng = .Range("E8:AI8")
sArr = .Range("B10", .Range("B" & Rows.Count).End(xlUp)).Resize(, 34).Value
End With
With Sheet3
tArr = .Range("B3", .Range("B" & Rows.Count).End(xlUp)).Resize(, 6).Value
End With
For I = 1 To UBound(tArr)
Dic.Item(CStr(tArr(I, 3))) = I
Next I
ReDim dArr(1 To UBound(sArr), 1 To 31)
For I = 1 To UBound(sArr)
R = Dic.Item(sArr(I, 1))
For J = 1 To Rng.Columns.Count
If R Then
If tArr(R, 1) = Rng(1, J) Then
Col = J: dArr(I, Col) = tArr(R, 6): Col = 0
Else
dArr(I, J) = sArr(I, J + 3)
End If
Else
dArr(I, J) = sArr(I, J + 3)
End If
Next J
Next I
Sheet9.Range("E10:AI10").Resize(I - 1).ClearContents
Sheet9.Range("E10:AI10").Resize(I - 1) = dArr
Set Dic = Nothing
End Sub