Lỗi gì là gì vậy; Mình thử trước khi đưa file lên rồi mà.
Chỉ chịu trách nhiệm với file mình đính kèm thôi đó nha!
Dịch từ macro sang tiếng Việt (có dấu), như sau:
Ba dòng đầu: Khai báo các biến cần dùng;
Gán trang tính 'DâT' vô biến đối tượng đã khai báo;
Lấy màu nền +1 tại 'A14' gán vô biến MyColor
(Để sau mỗi lần chạy macro ta thấy ô dòng này đổi màu)
Lấy ngày 1 của tháng ghi tại 'C1' & năm tại 'C2' gán vô biến Dat đã khai báo
Lấy vùng từ D2 cho đến dòng cuối chứa dữ liệu của cột này thuộc trang tính trong biến Sh đem gán vô biến Rng đã khai báo;
Đem kiểu định dạng hiện hữu của vùng chứa trong Rng gán vô biến chuỗi dFormat;
Xóa vùng thuộc dữ kiệu báo cáo cũ; Hầu chuẩn bị bãi đáp cho dữ liệu mới mà macro đưa lại;
Định dạng lại vùng chứa trong biến Rng; Nhằm fục vụ cho công cuộc tìm kiếm bên dưới
Thiết lập 1 vòng lặp; Để soát xét toàn bộ các ngày trong tháng có trong biến Dat
( Bắt đầu từ ngày đầu tháng,) tìm ngày này có trong vùng Rng hay không?
Nếu tìm thấy thì:
Từ ô tìm thấy làm mốc, lui về trái 3 cột, từ đó lấy trị của 4 ô liên tiếp gán vô ô trên trang hiện hành,
nơi mà từ ô cuối cùng của cột 1, áp dụng fương thức End(xlUp) (ô cuối trong cột 'A' có dữ liệu) thành ô bắt đầu của 4 ô liên tiếp trong dòng
(dài dòng là vậy nhưng lại khó hiểu, nôm na là vầy: Nếu cột 'A' đang có A35 là ô cuối có dữ liệu thì bắt đầu chép từ 'A36
36')
jJ = 1+ jJ : Sau mỗi lần tìm kiếm sẽ tăng lên 1 ngày trong biến Dat
& thực hiện công việc chán chường này cho đến khi trị tháng trong biến Dat không còn như cũ. (Điều kiện thoát vòng lặp)
Nói thêm:
+ Thay vì vòng lặp này, ta có thể xài
For . . . Next (Bạn hãy thử xem sao)
RngNumberFormat = dFormat hầu trả lại trạng thái định dạng ban đầu của chủ sở hữu trang tính;
Dòng cuối: Thực hiện việc tô màu theo biến MyColor