Cách in liên tục trong Excel

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]

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.

Ở 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.

Ở 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á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.

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.

Đầ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.

  • 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.

Đế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

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.

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.

Đ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

Video liên quan

Chủ Đề