Trần Linh Chi
Trần Linh Chi
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1418 lượt xem

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

Jun 08 2021

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.


Tuy nhiên, đây là một cách làm thủ công 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é!

Tuyệt đỉnh VBA - Viết Code trong tầm tay

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 ấn trang tính Excel 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. Nếu bạn cảm thấy hứng thú và muốn nâng cao hiệu quả làm việc của mình khi làm việc với Excel bằng VBA, hãy tham khảo khóa học Tuyệt đỉnh VBA - Viết Code trong tầm tay. Nếu bạn chưa biết gì về VBA cũng đừng lo, vì Gitiho sẽ đồng hành cùng bạn từ những kiến thức cơ bản đầu tiên của VBA, giúp bạn dễ dàng và nhanh chóng làm chủ được công cụ hữu ích này!

Đừng quên theo dõi những bài viết bổ ích khác trên blog Gitiho.com nhé!

Cách sử dụng cửa sổ Watch trong giao diện VBA Excel trên Macbook
Hướng dẫn về đối tượng Range trong VBA cơ bản
Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA
Hướng dẫn cách chạy file Macro, file VBA đuôi xlsm trong Excel
Hướng dẫn cách viết hàm OFFSET trong VBA Excel hiệu quả

Cùng tham gia cộng đồng hỏi đáp về chủ đề VBA

Thảo luận 0 câu trả lời
Lượt xem 1418 lượt xem
Vỗ tay vỗ tay

0 Bình 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