Hướng dẫn cách thiết lập vùng in trong Excel bằng VBA

Nội dung được viết bởi Trần Linh Chi

Khi bạn muốn in bảng tính trong Excel, nếu bạn không thiết lập vùng in hoặc thay đổi vùng in tự động thì Excel sẽ tự động in những trang có chứa dữ liệu. Tuy nhiên, bạn chỉ muốn in một vùng trong bảng tính đó, không cần in toàn bộ bảng tính. Để in một vùng nhất định theo mong muốn, chúng ta có thể thực hiện thiết lập vùng in trong Page Setup/Print Area.

Hướng dẫn cách thiết lập vùng in trong Excel bằng VBA

Tuy nhiên, đây là một cách chọn vùng in thủ công trong Excel và tốn khá nhiều thời gian. Trong bài viết hôm nay, Gitiho sẽ hướng dẫn bạn cách thiết lập vùng in trong Excel nhanh hơn, tự động hơn bằng VBA. Cùng theo dõi nhé!

Thành thạo VBA Excel nhờ Tuyệt đỉnh VBA

Các đối tượng làm việc trong VBA để thiết lập vùng in tự động

Trước khi tìm hiểu cách thiết lập vùng in tự động bằng VBA, hãy cùng tìm hiểu các đối tượng làm việc trong VBA nhé!

Đối tượng vùng in của trang tính

Trong các đối tượng làm việc của trang tính trong VBA, ta có đối tượng liên quan trực tiếp tới việc thiết lập vùng in là PageSetup.PrintArea. Để thiết lập vùng in tại trang tính mà mình mong muốn, bạn hãy đặt tên cho trang tính đó và dùng lệnh sau để làm xuất hiện đối tượng này:

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

Đối tượng địa chỉ vùng in của trang tính

Để gán một vùng vào đối tượng PageSetup.PrintArea, ta cần làm xuất hiện vùng đó đính kèm với địa chỉ của vùng với lệnh như sau:

Tên-trang-tính-chứa-vùng-cần-in.Range("vùng-cần-in").Address

Ví dụ ở đây, ta có vùng cần in là B2:I20, tại sheet 3, ta có:

Sub PrintArea_Test01()  'Thiết lập vùng in từ B2:I20 tại Sheet3
    Sheet3.PageSetup.PrintArea = Sheet3.Range("B2:I20").Address
End Sub

Cách thiết lập vùng in tự động bằng VBA

Giờ bạn không muốn chỉ in từ B2 tới I20 nữa, mà muốn thiết lập vùng in tự động từ cột B tới cột I, từ dòng 2 đến dòng cuối cùng cứa dữ liệu của cột I thì làm như thế nào? Sử dụng đoạn code sau nhé:

Sub PrintArea_Test02()  'Thiết lập vùng in tới dòng cuối
    Sheet1.PageSetup.PrintArea = Sheet3.Range("B2", Sheet3.Range("I65536").End(xlUp)).Address
End Sub

Như vậy, vùng in đã không còn bị giới hạn chỉ tới dòng thứ 20 nữa, mà sẽ mở rộng tới dòng cuối cùng có dữ liệu của cột I, và vùng in bây giờ đã là từ B2 tới dòng cuối cùng có dữ liệu của cột 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:

Sub PrintArea_Test03()  'Thiết lập vùng in tới dòng cuối
   Sheet3.PageSetup.PrintArea = Sheet3.Range("B2", sheet3.Range("I" & rows.count).End(xlUp)).Address
End Sub

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 I

Cách thiết lập vùng in theo vùng được chọn

Nếu bạn muốn tự tay chọn vùng in để thiết lập vùng in cho Excel thì có thể làm theo cách sau:

Sub PrintArea_Test04()  'Vùng in theo vùng được chọn
   Sheet3.PageSetup.PrintArea = Selection.Address
End Sub

Tổng kết

Như vậy, trong bài viết trên, Gitiho đã cùng bạn tìm hiểu cách để thiết lập vùng in hoặc thay đổi vùng in tự động trong Excel bằng VBA, giúp việc in file Excel nhiều cột trở nên thuận tiện và đúng theo mong muốn hơn. Chúng ta có thể thấy, VBA được ứng dụng vào Excel giúp các công việc thủ công trong Excel trở nên nhanh gọn và hiệu quả hơn rất nhiều. 

Xem thêm: Cách in lặp lại tiêu đề trong Excel ở tất cả các trang

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông