Bạn phải nó rõ code nào không chạy và bạn dang làm đoạn nào chứ trình của bạn còn dở dang và chưa sử lý hết các lỗi bất thường khác, ví dụ chọn dòng trống tạo ra sheet1 trắng.
Mình thấy bạn bỏ công ra làm như vậy nên mô phỏng theo 1 database object thì ngon hơn, file của bạn nếu quản lý công nhân viên trên giới hạn số Sheet thì bạn chấm công làm sao, số sheet lớn sẽ quản trị rất khó khăn.
Mình nêu thử 1 mô hình bạn tham khảo nhé:
Các sheet trong file
-Info (Các thông tin về đơn vị, các biến dùng chung khác: ca , loại thưởng loại phạtvv )
-HSNV (mã và hồ sơ nhân viên liên quan)
-DATA (mã , ngay , ca , thuong, phat, ghichu)
-Sheet hoặc Form chấm mới, sửa vv...
-Các sheets khai thác báo cáo, thống kê
Như vậy sẽ gọn hơn và có thể dùng chung cả năm không cần mỗi tháng thêm sheet