Rg là ô đầu tiên trong vùng KQ. Thuộc tính .CurrentRegion trả về toàn bộ những ô liên quan.
Bạn xem bài theo Link ở chữ ký của Bác Sa_DQ ấy, Bác ấy viết cẩn thận như giáo trình nếu bạn đọc là hiểu liền.
Theo cách này thì VBA chỉ xóa những "ô liên quan" , trong T/h này là nhưng ô xuất KQ vậy tại sao các khác (do mình tạo ra) cũng bị xóa luôn .Bạn thử xem nhé nếu ta dịch ô xuất KQ xuống 1 dòng rồi tạo tiêu đề : Bảng KQ thì sao khi in nhãn VBA tự xóa luôn dòng tiêu đề đó !? Ko hiểu tại sao luôn
Còn
T/h này ,mình chỉnh phần Xuất KQ ,ko cho xuất tiêu đề mà bắt đầu xuất KQ thôi ,còn tiêu đề mình tạo sẵn (kèm định dạng) ,nhưng khi chạy thì nó xuất KQ thôi
(đúng) nhưng tại sao nó lại xóa phần tiêu đề của mình tạo ra làm chi vậy
(sai) trong khi mình đã chỉnh lại vùng Bắt đầu xuất KQ xuống dưới 1 dòng rồi

Muốn nó ko xóa đi những gì mình tạo ra thì làm sao bạn nhé (KỂ CẢ Conditional Formatting)
Còn phần mã
Sh1.[i2].Activate có ý nghĩ giống
Sh1.Range("i2").Activate ko ? hay nó mang ý nghĩa khác ?

Mình sửa lại như sau như sau :
--- Ghi thế này :
Sh1.[i2].Activate thì VBA báo lỗi "Run-time error '438': Object doesn't support this property or method
"
--- Ghi thế này : Sh1.Activate
Range("i2").Seclect
thì VBA chịu
Em ko hiểu , anh xin giải thích dùm em
Trong đoạn mã của mình Vùng xử lý của bạn là : E2:E100 khi ta thêm 1 dòng vào bảng DS hàng thì nội dung tại dòng E100 sẽ chuyển xuống E101 điều này gây khó là ta phải dò lại mã VBA và chỉnh vùng xử lý lại . Mình có thể gán tên cho vùng này không bạn ?
VD : VXL = E2:E100 --> khi thêm 1 dòng VXL = E2:E101 (tự động) nhưng trong mã VBA vẫn là
WorksheetFunction.Sum(Sh1.["VSL"]) thayvì là
WorksheetFunction.Sum(Sh1.[e2:e100])
Mong bạn góp ý dùm ,xin cám ơn