Thêm một chút cho nặng nề thêm thôi mà.
File này em sưu tầm trên GPE
Em đã nhập số liệu của em đang sử dụng
Em muốn ghép đoạn code của #4 vào đây để khi bấm thì nó sẽ sắp xếp và tính tổng cho các cột có số, đếm số dịch vụ trên cột D tại các Sheet vừa được tách ra giống như file #4. Mà chẳng biết làm thế nào, em xin trợ giúp gửi lên các anh GPE
Đoạn code #4 của anh BaTê đây ạ:
Public Sub GPE()
Application.ScreenUpdating = False
Dim sArr(), dArr(), I As Long, J As Long, K As Long, Total1 As Long, Total2 As Long
Dim Tong1 As Long, Tong2 As Long, STT As Long, Cong As String, Tong3 As Long, Tong4 As Long
Cong = "C" & ChrW(7897) & "ng"
With Sheet3
sArr = .Range(.[B4], .[B4].End(xlDown)).Resize(, 7).Value
End With
With Sheet4
With .[A3:H60000]
.ClearContents
.Borders.LineStyle = 0
.Interior.ColorIndex = 0
.Font.Bold = False
.Font.ColorIndex = 0
End With
.[B3].Resize(UBound(sArr, 1), 7) = sArr
.[B3].Resize(UBound(sArr, 1), 7).Sort Key1:=.[G3], Key2:=.[D3]
sArr = .Range(.[B2], .[B3].End(xlDown).Offset(1)).Resize(, 7).Value
ReDim dArr(1 To UBound(sArr, 1) * 2, 1 To 8)
For I = 2 To UBound(sArr, 1) - 1
K = K + 1: STT = STT + 1
dArr(K, 1) = STT
For J = 1 To 7
dArr(K, J + 1) = sArr(I, J)
Next J
Tong1 = Tong1 + sArr(I, 4)
Tong2 = Tong2 + sArr(I, 5)
Tong3 = Tong3 + sArr(I, 4)
Tong4 = Tong4 + sArr(I, 5)
Total1 = Total1 + sArr(I, 4)
Total2 = Total2 + sArr(I, 5)
If sArr(I + 1, 3) <> sArr(I, 3) Then
K = K + 1
dArr(K, 3) = Cong
dArr(K, 5) = Tong1: Tong1 = 0
dArr(K, 6) = Tong2: Tong2 = 0
End If
If sArr(I + 1, 6) <> sArr(I, 6) Then
K = K + 1
dArr(K, 4) = Cong & " " & sArr(I, 6)
dArr(K, 5) = Tong3: Tong3 = 0
dArr(K, 6) = Tong4: Tong4 = 0
End If
Next I
K = K + 1
dArr(K, 3) = Cong & " Chung"
dArr(K, 5) = Total1
dArr(K, 6) = Total2
.[A3].Resize(K, 8) = dArr
.[A3].Resize(K, 8).Borders.LineStyle = 1
.Range("A" & K + 2).Resize(, 8).Interior.ColorIndex = 22
.Range("A" & K + 2).Resize(, 8).Font.Bold = True
For I = 1 To UBound(dArr, 1) - 1
If dArr(I, 3) = Cong Or Left(dArr(I, 4), 4) = Cong Then
.Range("A" & I + 2).Resize(, 8).Interior.ColorIndex = IIf(dArr(I, 3) = Cong, 20, 6)
.Range("C" & I + 2).Resize(, 4).Font.Bold = True
.Range("C" & I + 2).Resize(, 4).Font.ColorIndex = 3
End If
Next I
End With
End Sub