Option Explicit
Private Sub WorkSheet_Change(ByVal target As Range)
If Not Intersect(target, [D6]) Is Nothing Then
'2 Dòng Này: Khai Báo Các Biến Cần Dùng'
1 Dim Batch, eRw As Long, Hop As Double, Thung As Double
Dim Sh As Worksheet, Rng As Range
' Gán Trang "DataNX" Vô Biến": Tìm Dòng Cuối Của Trang & Gán Vo Biến eRw'
3 Set Sh = Worksheets("DataNX"): eRw = Sh.[b65500].End(xlUp).Row
'Xóa Vùng Dữ Liệu Đưa Ra Lần Trước: Không Cập Nhựt Màn Hình'
[B11].Resize(eRw, 6).ClearContents: Application.ScreenUpdating = False
'ĐKiện Nếu Ô [D6] Không Chứa DL (Dữ Liệu)'
5 If [D6].Value = "" Then
'Vùng [AC1:AC2] Được Gán Vô Biến ĐKB (Đã Khai Báo)'
Set Rng = Sh.[Ac1:Ac2]
7 Else ' Nếu Không Vậy, Thì'
'Nếu [C6] Là Trống, Thì [C6] Lấy Giá Trị Ở Ô [D6]'
If [c6].Value = "" Then [c6].Value = [D6].Value
' Giống Như Giải Thích Dòng Lệnh 6'
9 Set Rng = Sh.[AA1:AC2]
'Kết Thúc ĐK Tại Dòng 8'
End If
'Áp Dụng Fương Thức Lọc Mở Rộng Từ Vùng CSDL Sang Vùng [KQuả] '
11 Sh.[B5].Resize(eRw, 15).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Rng, CopyToRange:=Sh.[AA5].Resize(, 7)
'Vùng [KQuả] Được Đem Xếp Theo Trường [AE6] Của Trang Sh'
13 Sh.[AA5].CurrentRegion.Sort Key1:=Sh.[ae6], Order1:=xlAscending, Key2:=Sh.[AA6], _
Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1 ', MatchCase:=False
'Số Dòng Của Vùng [KQuả] Đem Gán Vô Biến eRw'
15 eRw = Sh.[ae5].CurrentRegion.Rows.Count
'Ta Tiến Hành Duyệt Toàn Bộ Các Ô Trong Cột [AE] Kể Từ Sau Dòng 6'
For Each Rng In Sh.[ae6].Resize(eRw)
'ĐKiện Nếu Trị Trong Ô Đang Duyệt # Với Trong Biến Batch ĐKB, Thì'
17 If Rng.Value <> Batch Then
'Gán Trị Trong Ô í Cho Biến Này'
Batch = Rng.Value
'ĐKiện, Nếu Số Dòng Của Ô Đang Duyệt Không Là 6, Thì'
19 If Rng.Row > 6 Then
'Với Ô Trống Đầu Tiên Sau Dòng Cuối Của Cột [B] (Trang Đang Kích Hoạt) Chứa DL'
With [B9999].End(xlUp).Offset(1)
'Mở Rộng Về Fải 5 Ô Của Ô Này Được Gán Trị Từ 5 Ô Kể Từ Ô Đang Khảo Sát Về Trái 4 Ô'
21 .Resize(, 5).Value = Rng.Offset(-1, -4).Resize(, 5).Value
'Ô Thú 5 Fía Fải Được Gán Trị Từ Biến Hop: & Ô Thứ 7 là Từ Biến Thung'
.Offset(, 5).Value = Hop: '.Offset(, 7).Value = Thung
'23 & 24: Kết Thúc Witch & KThu1c ĐK Từ Dòng 19 '
23 End With
End If
'Lấy Trị Trong Ô Lệch Fải 1/2 Ô Với Ô Đang Khảo Sát Gán Vô Biến Hop/Thung ĐKB'
25 Hop = Rng.Offset(, 1).Value: Thung = Rng.Offset(, 2).Value
'Rẽ Nhánh Của ĐKiện Ở Dòng 17'
Else
'27 & 28 Cộng Dồn Trị Trong Biến Hop/Thung Với Trị Trong Các Ô Tương Ứng'
27 Hop = Rng.Offset(, 1).Value + Hop
Thung = Rng.Offset(, 2).Value + Thung
'KThúc ĐKiện Từ Dòng 17'
29 End If
'KThúc Vòng Lặp Khảo Sát Các Ô Trong Cột [AE] (Thuộc Trang Trong Biến Sh]'
Next Rng
'Dòng Lệnh Này Chỉ Để Tham Khảo Vì Đã Bị Vô Hiệu Hóa:'
' Sh.[AA5].CurrentRegion.Offset(1).Copy Destination:=[B11]
' Tự Hiểu'
32 End If
End Sub