Sub TachSao()
'Nhan 3 phím: Ctrl + Shift + T chay code
Dim Sh As Worksheet, RngList As Range, Rng As Range
Dim sArr As Variant, Sao As Variant, dArr As Variant
Dim i As Long, lRow As Long
Dim tmp As String, ShName As String, TenSao As String
Application.ScreenUpdating = False
Sao = Array("La H?u", "Thái B?ch", "K? ??", "Sao H?i")
sArr = Array("La Hau", "Thai Bach", "Ke Do", "Sao Hoi")
Set Sh = Sheets(sArr(3)) 'Sheet Sao Hoi"
Sh.AutoFilterMode = False
lRow = Sh.Range("B" & Rows.Count).End(xlUp).Row
If lRow > 4 Then Sh.Range("A5:G" & lRow).Clear
With Sheet1
.AutoFilterMode = False
lRow = .Range("G" & Rows.Count).End(xlUp).Row
If lRow < 5 Then MsgBox ("Khong co du lieu, Khong Sao"): Exit Sub
Sh.Range("A5:D" & lRow).Value = .Range("A5:D" & lRow).Value
Sh.Range("E5:E" & lRow).Value = .Range("G5:G" & lRow).Value
End With
dArr = Sh.Range("B5:B" & lRow).Value
For i = 1 To UBound(dArr)
dArr(i, 1) = Application.Proper(dArr(i, 1))
Next i
Sh.Range("B5:B" & lRow) = dArr
Sh.Range("A5:E" & lRow).Borders.LineStyle = 1
Sh.Range("A5:E" & lRow).Font.Size = 12
Sh.Range("A5:A" & lRow).HorizontalAlignment = xlCenter
Sh.Range("C5:D" & lRow).HorizontalAlignment = xlCenter
Set RngList = Sh.Range("A4:E" & lRow)
Set Rng = Sh.Range("A5:E" & lRow)
For i = 0 To 2
ShName = sArr(i): TenSao = Sao(i)
RngList.AutoFilter Field:=5, Criteria1:=TenSao
If Rng.SpecialCells(xlCellTypeLastCell).Row > 4 Then
If TestSheet(ShName) Then
Set ShMain = Sheets.Add(After:=Sheets(Sheets.Count))
Sheets(Sheets.Count).Name = ShName
Sh.Range("A1:E4").Copy Destination:=Sheets(ShName).Range("A1")
End If
With Sheets(ShName)
lRow = .Range("B" & Rows.Count).End(xlUp).Row
If lRow > 4 Then .Range("A5:E" & lRow).Clear
Rng.SpecialCells(12).Copy Destination:=.Range("A5")
Rng.EntireRow.Delete
lRow = .Range("B" & Rows.Count).End(xlUp).Row
.Range("A5").Value = 1
.Range("A5:A" & lRow).DataSeries
.Columns("A:E").EntireColumn.AutoFit
.Rows("1:2").RowHeight = 21.6
End With
RngList.AutoFilter
Else
If TestSheet(ShName) Then Sheets(ShName).Delete
End If
Next i
lRow = Sh.Range("B" & Rows.Count).End(xlUp).Row
If lRow > 4 Then
Sh.Range("A5").Value = 1
Sh.Range("A5:A" & lRow).DataSeries
Sh.Columns("A:E").EntireColumn.AutoFit
End If
Set Sh = Nothing: Set RngList = Nothing: Set Rng = Nothing
Application.ScreenUpdating = True
End Sub