Menu

Tự động hóa việc tạo bảng chấm công theo mẫu có sẵn bằng VBA

Mạc Đình Sa 13/06/2026 07:54 578 lượt xem 2 trả lời

Chào mọi người,

Mình đang làm một file chấm công cho công ty và muốn tự động hóa việc tạo bảng chấm công cho từng nhân viên dựa trên một mẫu có sẵn. Cụ thể là mình có một file mẫu (ví dụ: TemplateChamCong.xlsx) với các thông tin cố định như tên công ty, địa chỉ, cấu trúc bảng. Khi mình nhập tên nhân viên vào một danh sách (ví dụ: Sheet "DanhSachNhanVien"), VBA sẽ tự động tạo ra một file Excel mới cho nhân viên đó, copy nội dung từ file mẫu và điền tên nhân viên vào ô tương ứng.

Mình đã thử tìm hiểu về cách sử dụng Workbooks.AddFileCopy nhưng chưa thực sự hình dung ra cách kết hợp để điền dữ liệu động. Có anh em nào có kinh nghiệm hoặc code mẫu cho trường hợp này không ạ? Em xin cảm ơn!

Mục tiêu là khi có nhân viên mới, mình chỉ cần thêm tên vào danh sách là có ngay một file chấm công riêng cho họ, tiết kiệm thời gian tạo thủ công.

Yêu cầu cụ thể:

  • Dựa vào tên nhân viên trong Sheet "DanhSachNhanVien".
  • Tạo một file Excel mới.
  • Copy nội dung từ file mẫu TemplateChamCong.xlsx sang file mới.
  • Điền tên nhân viên vào một ô cụ thể (ví dụ: ô B2 trong file mới).
  • Lưu file mới với tên nhân viên (ví dụ: [TenNhanVien].xlsx).

Rất mong nhận được sự giúp đỡ từ các cao thủ VBA!

2

Hay quá bạn ơi! Ý tưởng tự động hóa tạo bảng chấm công này rất thiết thực.

Mình cũng từng làm một dự án tương tự, và có một cách khác cũng khá hay là bạn có thể dùng Workbook.SaveCopyAs để lưu bản mẫu thành tên file mới theo tên nhân viên, rồi sau đó mới mở file mới này lên để điền thông tin. Cách này giúp giữ nguyên bản mẫu gốc không bị ảnh hưởng.

Bạn đã nghĩ đến việc xử lý trường hợp tên nhân viên trùng nhau chưa? Hoặc có cần điền thêm thông tin gì khác ngoài tên nhân viên không?

3

Ý tưởng tự động hóa tạo bảng chấm công này rất hay và thiết thực đó bạn.

Mình cũng có một kinh nghiệm nhỏ khi làm việc này. Thay vì copy toàn bộ sheet mẫu sang file mới, bạn có thể thử cách mở file mẫu lên, copy đúng vùng dữ liệu bạn cần (ví dụ: vùng bảng chấm công), rồi paste vào một sheet mới trong một workbook mới đã được tạo sẵn. Sau đó, bạn chỉ cần điền tên nhân viên vào ô tương ứng. Cách này đôi khi lại gọn gàng hơn nếu file mẫu của bạn có nhiều sheet không cần thiết.

Bạn đã nghĩ đến việc xử lý trường hợp tên nhân viên trùng nhau chưa? Hoặc có cần điền thêm thông tin gì khác ngoài tên nhân viên không?

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký