Một yêu cầu có thể gặp phải là chúng ta cần lưu trữ các phiếu đó, dưới dạng từng phiếu một theo các hình thức:
- In ra giấy (chức năng in hàng loạt)
- Xuất ra bản mềm (file PDF, file Excel…)
Chúng ta cùng tìm hiểu cách xây dựng lệnh Trích xuất dữ liệu hàng loạt ra file PDF theo mỗi đối tượng, cụ thể ở đây là mỗi Phiếu Xuất kho.
XÁC ĐỊNH TRÌNH TỰ THỰC HIỆN
Đây là việc mô tả lại những việc cần phải làm, từng bước thực hiện và tương tác với Excel ra sao. Việc diễn đạt tốt trình tự thực hiện sẽ giúp chúng ta dễ dàng viết lệnh trong VBA và tránh các lỗi có thể xảy ra.
Bước 1: Xác định các đối tượng
Ở đây chúng ta có 2 đối tượng: Dòng cuối của bảng kê và vùng dữ liệu cần trích xuất
- Dòng cuối bảng kê: dòng cuối được xác định bằng câu lệnh tìm dòng cuối trong VBA
- Vùng dữ liệu cần trích xuất: trong mục này chúng ta giới hạn phạm vi dữ liệu cần trích xuất (nội dung này thiết lập trong phần Page Setup > Thẻ Sheet > Mục Print area)
Bước 2: Xác định đường dẫn tới nơi lưu kết quả trích xuất
Trong bước này chúng ta cần biện luận các trường hợp:
- Chọn chính xác đường dẫn tới nơi lưu kết quả => Chọn tới đường dẫn đó
- Chưa chọn chính xác đường dẫn => Thông báo lỗi và yêu cầu chọn lại hoặc hủy bỏ câu lệnh.
Bước 3: Viết tiếp câu lệnh trong trường hợp chọn đúng đường dẫn
Bước này cũng xảy ra một số trường hợp như sau:
- Nếu kết quả cần trích xuất đã có hoặc trùng tên => Thông báo cho người sử dụng biết để xử lý: Có ghi đè lên file đó hay không
- Trường hợp nếu ghi đè không được vì file đó không cho phép ghi đè => Thông báo cho người sử dụng biết để xử lý.
- Trường hợp kết quả cần trích xuất chưa có sẵn => Thực hiện việc trích xuất.
Việc này sẽ được thực hiện khi kiểm tra từng kết quả cần trích xuất => Do đó phải thực hiện theo 1 vòng lặp cho từng đối tượng số phiếu.
CÂU LỆNH VBA TRÍCH XUẤT DỮ LIỆU
Trong đoạn code trên, mình đã ghi chú rất cụ thể nội dung từng đoạn code để các bạn có thể dựa vào đó đọc, hiểu nội dung từng đoạn.
Câu lệnh viết trong VBA có thể dài và hơi khó đọc, nhưng khi chúng ta đã xây dựng được trình tự từ trước đó thì việc kiểm soát lại câu lệnh VBA sẽ không khó nữa.
Khi ứng dụng vào việc khác thì cần lưu ý tọa độ các vị trí để điều chỉnh cho khớp với đặc điểm dữ liệu trong việc đó.
Cùng xem kết quả nào: