25/05/2018, 23:33

Thay đổi vùng in tự động trong Excel bằng VBA

Thông thường trong Excel nếu như chúng ta không thiết lập vùng in thì sẽ tự động in toàn bộ những trang in có chứa dữ liệu. Nhưng không phải lúc nào chúng ta cũng cần in toàn bộ sheet, mà chỉ cần in một vùng nhất định trong sheet đó. Điều này được thực hiện thông qua việc thiết lập Print Area ...

Thông thường trong Excel nếu như chúng ta không thiết lập vùng in thì sẽ tự động in toàn bộ những trang in có chứa dữ liệu. Nhưng không phải lúc nào chúng ta cũng cần in toàn bộ sheet, mà chỉ cần in một vùng nhất định trong sheet đó. Điều này được thực hiện thông qua việc thiết lập Print Area trong mục Page Setup.

Hôm nay chúng ta sẽ cùng nhau tìm hiểu về việc làm thế nào để tự động thiết lập cho Print Area? Bởi thông thường muốn thiết lập Print Are chúng ta đều phải thực hiện một cách thủ công.

Câu trả lời là chúng ta có thể dùng VBA để làm việc đó. Hãy cùng tìm hiểu nào:

1. Đối tượng làm việc trong VBA

a. Đối tượng vùng in của Sheet

Trong các đối tượng của WorkSheet tại VBA chúng ta có đối tượng liên quan tới thiết lập vùng in là PageSetup.PrintArea

Muốn thiết lập vùng in tại Sheet nào chúng ta đặt tên Sheet đó và gọi đối tượng này ra:

Tên-Sheet.PageSetup.PrintArea = …………

b. Đối tượng địa chỉ của vùng in

Để gán 1 vùng (range) vào đối tượng PageSetup.PrintArea thì chúng ta phải gọi ra vùng đó kèm theo thuộc tính Address (địa chỉ)

Thủ tục như sau:

Tên-Sheet-chứa-vùng-cần-in.Range(“vùng-cần-in”).Address

Ví dụ:

Vùng cần in của chúng ta là B2:G100, tại Sheet1

View the code on Gist.

2. Cách tạo vùng in tự động thay đổi

Thay vì in từ B2 tới G100, chúng ta muốn vùng in tự động thay đổi từ cột B tới cột G, từ dòng 2 tới dòng cuối cùng có chứa dữ liệu ở cột G:

View the code on Gist.

Như vậy không giới hạn vùng in tới dòng thứ 100, mà tùy theo dòng cuối có dữ liệu ở cột G là dòng bao nhiêu thì vùng in sẽ tự động thay đổi từ B2 tới cột G, dòng cuối.

Tương tự như câu lệnh trên, chúng ta có thể sử dụng 1 cách khác để tìm dòng cuối:

View the code on Gist.

Với 2 cách viết này, chúng ta có thể áp dụng tương tự sang các trường hợp khác, chỉ cần thay đổi vùng tọa độ:

  • Điểm bắt đầu: thay đổi B2
  • Điểm kết thúc: thay đổi cột G

* Thiết lập vùng in theo vùng được chọn:

Đôi khi chúng ta muốn tự tay chọn vùng muốn in thì có thể làm như sau:

View the code on Gist.

Thật đơn giản phải không? Chúc các bạn học tốt cùng Học Excel Online!

Tải về file mẫu: http://bit.ly/2EfLaha

0