VBA Excel Cấp Tốc Bài 3 - In Ấn Nhanh Hàng Loạt

Phương pháp in ấn hàng loạt này phù hợp với nhu cầu in ấn số lượng lớn về danh sách thí sinh thi vào đại học, in giấy họp phụ huynh, in bản lương cho nhân viên công ty, ... Cách thực hành cụ thể mời các bạn theo dõi bài viết hướng dẫn chi tiết sau.

Xem bài học trước

>> VBA Excel Cấp Tốc Bài 1 - Lọc Dữ Liệu Nhiều Điều Kiện Với Advanced Filter

>> VBA Excel Cấp Tốc Bài 2 - In Bảng Cửu Chương

Video hướng dẫn thực hành

Tạo VLOOKUP

Tạo VLOOKUP khi tự động chạy số báo danh các mục như tên, ngày sinh, điểm, ... sẽ tự động hiển thị theo số báo danh.

Ta sẽ làm như sau kích vào ô tên thí sinh gõ =VLOOKUP(kích vô ô SBD chấm phẩy qua sheet dữ liệu bôi đen hết dữ liệu chấm phẩy ở mục tên là 2 chấm phẩy 0) -> Enter.

VD: =VLOOKUP(D4;Data!A1:J16;2;0)

tạo vlookup

Khi tạo xong sẽ được kết quả như hình. Có thể thử nghiệm bằng cách nhập SBD xem có hiện tên ra không nếu hiện ra là ok.

kết quả khi tạo xong vlookup

Ở các mục Ngày Sinh ta cũng thực hiện như ở cột tên ta chỉ thay số 2 thành số 3 -> Enter.

vlookup với ngày sinh

Ở mục ngày sinh t đổi sang định dạng ngày tháng bằng cách kích chuột phải vô ô ngày sinh -> Format Cells -> Date -> Ok.

cài đặt ngày tháng

Các mục tiếp theo bạn cũng thực hiện tương tự chỉ thay số 2 thành 3 4 5 cho đến mục cuối cùng. Kết quả khi hoàn thành như hình bên dưới.

xong Vlookupe

In ấn nhanh hàng loạt.

Giờ ta sẽ bắt đầu viết code để thực hiện việc in ấn hàng loạt.
Đầu tiên mở Visual Basic lên bằng phím tắt Alt+F11 -> chuột phải vào Sheet 2 -> Insert -> Module.

mở visual basic

Đầu tiên ta sẽ mở đầu chương trình là Sub Tên chương trình viết không cách không dấu Enter sẽ tự tạo ra phần kết của chương trình.

mở đầu kết thúc chương trình

  • Khai báo i và i sẽ chạy từ số báo danh đầu tiên đến số báo danh cuối cùng. Dim i As Integer và i = 2 tại vì số báo danh đầu tiên nằm ở ô số 2.
  • Dùng vòng lặp While để mở đầu vòng lặp và Wend để kết thúc vòng lặp.
  • Mở đầu là while đến ThisWorkbook sheets(1) là sheet dữ liệu cần in, cells(i, 1) <>"" là hàm này sẽ chạy ở cột 1 và chạy từ i=2 đến khi gặp rỗng nó sẽ dừng.
  • Tiếp theo sẽ gán vị trí số báo danh để khi chạy thì phần số báo danh tăng lên và các mục khác sẽ tự động chạy theo. Gõ ThisWorkbook.Sheets(2) là Sheet chưa phần để in ra Cells(4, 4) là phần ô số báo danh ở cột 4 hàng 4, = ThisWorkbook.Sheets(1).Cells(i, 1) là gán cho phần dữ liệu.
  • Cho i tăng sau mỗi lần lập i = i + 1 và kết thúc bằng Wend.

Chạy vòng lặp

Đến phần code để in đầu tiên vẫn là ThisWorkbook tiếp đến Sheets(2) là Sheet chứa phần cần in, và PrintOut preview = False

câu lệnh in

Nếu có máy khi bắt đầu in thì nó tự in ra nhưng vì không có máy in nên chỉ in ra File PDF và đặt tên cho File PDF khi lưu và chạy liên tục cho đến thí sinh cuối cùng.

Tạo Macro

Tạo Macro khi cần in ta chỉ việc kích vào Macro mà không cần phải vào Visual Basic hay viết lại code.
Vào Developer -> Insert -> Button -> Giữ chuột kéo -> kích vào tên chương trình -> ok.

tạo developer

Nếu muốn in một vài Danh sách thì sử dụng vòng lặp For Next.
VD: Muốn in từ hàng số 3 đến hàng số 5.

vòng lặp for

Đoạn cos của in ấn hàng loạt:

Sub in_hang_loat()
Dim i As Integer
i = 2
While ThisWorkbook.Sheets(1).Cells(i, 1) <> ""
    ThisWorkbook.Sheets(2).Cells(4, 4) = ThisWorkbook.Sheets(1).Cells(i, 1)
    ThisWorkbook.Sheets(2).PrintOut preview = False
    i = i + 1
    

Wend
End Sub

Bài tiếp theo

>> VBA Excel Cấp Tốc Bài 4 - Xóa Tự Động Hàng Loạt Sheets Không Active

CHO ĐIỂM BÀI VIẾT NÀY

vote data
TOP