Hướng dẫn cách xuất dữ liệu hàng loạt từ Excel ra PDF bằng VBA

Chia sẻ bài viết này:

Qua hai bài học về ‘Tự động cập nhật dữ liệu với công cụ Spin Button‘ và ‘Quản lý công cụ Spin Button trong VBA‘ chúng ta đã có thể biết được cách sử dụng công cụ Spin button để cập nhật dữ liệu trong mẫu Phiếu xuất kho.

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…)

Trong bài học này 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:

Tải về file mẫu tại đây: http://bit.ly/2DjhDYh

VBA giúp ích rất nhiều trong công việc: Tự động hóa Excel, viết hàm tự tạo, giúp làm việc trong Excel dễ dàng hơn, chuyên nghiệp hơn, bổ sung thêm những điều mà Excel không có sẵn. Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBA101 – Tự động hóa Excel với lập trình VBA. Đây là khóa học rất hữu ích dành cho bạn. Hãy cùng khám phá nào


Chia sẻ bài viết này: