Có thể bạn quan tâm: Cách Tính Thời Gian Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở Đầu: Tại Sao In Hàng Loạt Là Một Nhu Cầu Quan Trọng?
Trong môi trường doanh nghiệp, giáo dục và các tổ chức phi lợi nhuận, việc in các báo cáo, phiếu, danh sách, chứng chỉ, hoá đơn hay phiếu kiểm kê từ Excel là một hoạt động thường xuyên. Tuy nhiên, khi số lượng tài liệu cần in lên tới hàng chục, hàng trăm hoặc thậm chí hàng nghìn trang, việc thực hiện thủ công – mở từng file, thiết lập in, nhấn nút “Print” – sẽ tiêu tốn rất nhiều thời gian và công sức, đồng thời dễ gây ra lỗi như in sai trang, in thiếu dữ liệu hoặc sai định dạng.
Do đó, in hàng loạt trong Excel đã trở thành một kỹ năng thiết yếu mà mọi người dùng Excel, từ nhân viên văn phòng cho tới quản trị viên hệ thống, cần nắm vững. Bài viết dưới đây sẽ cung cấp cho bạn một cái nhìn toàn diện, từ các phương pháp cơ bản đến các giải pháp tự động hoá nâng cao, giúp bạn tiết kiệm thời gian, giảm thiểu sai sót và nâng cao hiệu suất công việc.
Có thể bạn quan tâm: Hàm If (nếu) Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Hiểu Rõ Nhu Cầu In Hàng Loạt
1.1. Các trường hợp thường gặp
| Trường hợp | Mô tả | Lý do cần in hàng loạt |
|---|---|---|
| Bảng danh sách nhân viên | Xuất danh sách tên, chức vụ, phòng ban | Cần phát cho mỗi nhân viên hoặc lưu trữ |
| Phiếu kiểm kê kho | Mỗi mặt hàng một phiếu | Kiểm tra thực tế tại kho |
| Chứng chỉ đào tạo | In chứng chỉ cho học viên | Giao cho học viên sau khóa học |
| Hóa đơn bán hàng | In hóa đơn cho khách | Đáp ứng yêu cầu pháp lý và khách hàng |
| Báo cáo tài chính | Nhiều sheet, nhiều trang | Gửi tới các phòng ban, cổ đông |
1.2. Những thách thức chính
- Định dạng không đồng nhất: Mỗi tài liệu có thể yêu cầu layout khác nhau (cỡ giấy, lề, tiêu đề, logo…).
- Số lượng lớn: Việc lặp lại thao tác in cho mỗi file là không khả thi.
- Quản lý tệp tin: Khi in từ nhiều file, việc sắp xếp, lưu trữ và kiểm tra lại dễ gây nhầm lẫn.
- Tự động hoá: Không phải ai cũng biết cách viết macro hoặc sử dụng phần mềm bên ngoài.
Có thể bạn quan tâm: Hàm Cộng Trừ Nhân Chia Trong Excel: Cách Sử Dụng, Ví Dụ Thực Tế Và Mẹo Tối Ưu
2. Các Phương Pháp In Hàng Loạt Cơ Bản
2.1. In từ một Sheet với nhiều Dòng Dữ Liệu
Nếu bạn chỉ cần in một sheet có nhiều dòng (ví dụ: danh sách 1000 nhân viên), bạn có thể:
- Chọn toàn bộ sheet:
Ctrl + A. - Mở hộp thoại Print:
Ctrl + P. - Cài đặt “Print Entire Workbook” hoặc “Print Active Sheets”.
- Chọn “Fit Sheet on One Page” nếu muốn toàn bộ dữ liệu trên một trang (đối với danh sách ngắn) hoặc “Fit All Columns on One Page” để giữ độ rộng cột.
Lưu ý: Khi dữ liệu quá lớn, việc in trên một trang sẽ làm chữ quá nhỏ, không thực tế. Hãy cân nhắc chia thành nhiều trang bằng cách thiết lập “Page Breaks” thủ công hoặc sử dụng tính năng “Print Titles” để lặp lại tiêu đề cột trên mỗi trang.
2.2. In Nhiều Sheet Trong Cùng Một Workbook
Nếu workbook chứa nhiều sheet cần in (ví dụ: mỗi sheet là một phiếu kiểm kê):
- Nhấn giữ
Ctrlvà click vào các sheet cần in để chọn nhiều sheet. - Mở Print (
Ctrl + P). - Chọn “Print Entire Workbook” hoặc “Print Active Sheets” (tùy chọn đã chọn).
- Kiểm tra Preview để đảm bảo mỗi sheet được in đúng cách.
2.3. In Nhiều Workbook Cùng Lúc
Khi có nhiều file Excel (.xlsx) cần in, cách nhanh nhất là:
- Sử dụng Windows Explorer:
- Mở thư mục chứa các file.
- Chọn tất cả các file cần in (
Ctrl + AhoặcShift + Click). - Click chuột phải → Print. Windows sẽ mở mỗi file trong Excel và gửi lệnh in tới máy in mặc định.
Hạn chế: Phương pháp này chỉ in sheet đầu tiên của mỗi workbook và không cho phép tùy chỉnh sâu (định dạng, lề, logo…). Đối với nhu cầu phức tạp, cần dùng macro hoặc phần mềm bên thứ ba.
3. Sử Dụng Macro (VBA) Để In Hàng Loạt
3.1. Tại Sao Nên Dùng VBA?
- Tự động hoá: Thực hiện lặp lại quy trình in cho hàng trăm file chỉ trong vài giây.
- Kiểm soát chi tiết: Có thể thiết lập in từng sheet, từng vùng dữ liệu, thêm tiêu đề, logo, và thậm chí lưu file PDF.
- Tích hợp dữ liệu: Có thể lấy thông tin từ một master list (ví dụ: danh sách tên và mã số) để in tài liệu cá nhân hoá.
3.2. Cấu Trúc Cơ Bản Của Một Macro In Hàng Loạt
Sub PrintBatch() Dim wb As Workbook Dim ws As Worksheet Dim folderPath As String Dim fileName As String ' Đường dẫn thư mục chứa các file Excel cần in folderPath = "C:\Users\YourName\Documents\InHangLoat\" ' Lấy tên file đầu tiên fileName = Dir(folderPath & ".xlsx") Application.ScreenUpdating = False Do While fileName <> "" ' Mở file Set wb = Workbooks.Open(folderPath & fileName) ' Lặp qua các sheet cần in (có thể chỉnh sửa logic) For Each ws In wb.Worksheets ' Kiểm tra nếu sheet có dữ liệu (tùy chọn) If Application.WorksheetFunction.CountA(ws.Cells) > 0 Then ws.PrintOut Copies:=1, Collate:=True End If Next ws wb.Close SaveChanges:=False fileName = Dir ' Lấy file tiếp theo Loop Application.ScreenUpdating = True MsgBox "Hoàn tất in hàng loạt!", vbInformation
End Sub
Giải thích từng phần:
folderPath: Thư mục chứa các file Excel. Bạn có thể thay đổi để phù hợp.Dir(folderPath & ".xlsx"): Lấy danh sách file có đuôi .xlsx.Workbooks.Open: Mở từng file.For Each ws In wb.Worksheets: Lặp qua mọi sheet trong workbook.ws.PrintOut: Lệnh in. Có thể thêm các tham số nhưFrom,To,ActivePrinter.wb.Close SaveChanges:=False: Đóng file sau khi in, không lưu thay đổi.
3.3. In Hàng Loạt Với Định Dạng Cụ Thể (Page Setup)
Nếu mỗi sheet cần in theo một định dạng nhất định (cỡ giấy A4, lề 1cm, tiêu đề trang…), bạn có thể mở rộng macro:
With ws.PageSetup .PaperSize = xlPaperA4 .Orientation = xlPortrait .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = False .LeftMargin = Application.InchesToPoints(0.4) .RightMargin = Application.InchesToPoints(0.4) .TopMargin = Application.InchesToPoints(0.5) .BottomMargin = Application.InchesToPoints(0.5) .PrintTitleRows = "$1:$2" ' Lặp tiêu đề 2 dòng đầu
End With
Bạn có thể đặt đoạn này trong vòng lặp For Each ws để áp dụng cho mọi sheet.
3.4. In và Lưu Dưới Dạng PDF
Nhiều doanh nghiệp muốn lưu bản in dưới dạng PDF để gửi email hoặc lưu trữ điện tử. Đoạn code sau sẽ thực hiện cả hai:
Dim pdfPath As String
pdfPath = folderPath & "PDF_Output\" If Dir(pdfPath, vbDirectory) = "" Then MkDir pdfPath ' Tạo thư mục PDF nếu chưa có For Each ws In wb.Worksheets If Application.WorksheetFunction.CountA(ws.Cells) > 0 Then ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=pdfPath & wb.Name & "_" & ws.Name & ".pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End If
Next ws
3.5. Tối Ưu Hóa: In Chỉ Những Sheet Được Đánh Dấu
Giả sử trong mỗi workbook bạn có một cột “In?” (cột A) với giá trị “Yes” hoặc “No”. Bạn muốn in chỉ những sheet mà ô A1 = “Yes”. Thêm logic:
If LCase(ws.Range("A1").Value) = "yes" Then ws.PrintOut
End If
Bạn có thể mở rộng để kiểm tra nhiều ô, ví dụ: If ws.Range("A1").Value = "Yes" And ws.Range("B2").Value > 0 Then …

Có thể bạn quan tâm: In Trang Chẵn Lẻ Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
4. Sử Dụng Power Query & Power Automate Để In Hàng Loạt
Khi dữ liệu xuất phát từ nhiều nguồn (SQL, CSV, SharePoint), việc nhập trực tiếp vào Excel rồi in có thể không hiệu quả. Power Query cho phép bạn hợp nhất dữ liệu, còn Power Automate (trước đây là Microsoft Flow) có thể tự động hoá quy trình in và lưu PDF.
4.1. Quy Trình Tổng Quát
- Power Query: Kết nối tới nguồn dữ liệu, chuyển đổi, tạo một bảng tổng hợp.
- Power Automate: Khi bảng trong Excel thay đổi (trigger “When a row is added”), flow sẽ:
- Mở file Excel (action “Run a script” – chạy VBA script đã lưu trong Office Scripts).
- Export sheet thành PDF.
- Gửi PDF qua email hoặc lưu vào OneDrive/SharePoint.
4.2. Ví Dụ Cụ Thể: Tự Động Gửi Phiếu Lương
- Bước 1: Tạo file Excel “Phiếu Lương.xlsx” với một sheet “Template”. Sử dụng Office Scripts để thay thế placeholder
{Tên}và{Lương}bằng dữ liệu từ bảng nhân viên. - Bước 2: Trong Power Automate:
- Trigger: “When a new item is created” trong SharePoint List “Nhân viên”.
- Action: “Run script” – truyền tham số tên và lương.
- Action: “Export to PDF”.
- Action: “Send an email (V2)” – đính kèm PDF và gửi tới nhân viên.
Ưu điểm: Không cần mở Excel hay viết macro trên máy tính cá nhân. Hoạt động hoàn toàn trên đám mây, an toàn và có thể lên lịch.
5. Công Cụ Bên Thứ Ba Hữu Ích
5.1. Kutools for Excel
- Batch Print: Cho phép chọn nhiều sheet hoặc nhiều file, cài đặt in nhanh.
- Print Options: Tự động lặp tiêu đề, thiết lập lề, in chỉ vùng đã chọn.
5.2. Print Conductor
- Phần mềm độc lập, hỗ trợ in hàng loạt các file PDF, Word, Excel.
- Giao diện kéo thả, cho phép sắp xếp thứ tự in.
- Tích hợp tính năng “Print Preview” để kiểm tra trước khi in.
5.3. Adobe Acrobat Pro
- Khi đã chuyển Excel sang PDF, Acrobat cho phép Combine Files và Batch Print.
- Hỗ trợ in 2‑sided, nén file, và thêm watermark.
5.4. Các Add‑in Trên Office Store
- “Batch Print for Excel” – cho phép in nhiều workbook với tùy chọn lưu PDF.
- “Smart Print” – tự động phát hiện vùng in (Print Area) và áp dụng layout.
6. Thực Hành: 5 Bài Tập Thực Tế
Bài 1: In Danh Sách 500 Nhân Viên Với Tiêu Đề Lặp Lại
- Tạo sheet “DanhSach” với tiêu đề ở hàng 1‑2.
- Vào Page Layout → Print Titles, đặt
$1:$2vào “Rows to repeat”. - Sử dụng macro:
Sub PrintDanhSach() With Worksheets("DanhSach") .PrintOut Copies:=1, Collate:=True End With
End Sub
Bài 2: In Phiếu Kiểm Kê Từ 100 File Khác Nhau
- Đặt tất cả file trong thư mục
C:\KiểmKê\. - Sử dụng macro
PrintBatchđã trình bày ở mục 3.2. - Kiểm tra thư mục
PDF_Outputđể chắc chắn mọi phiếu đã được xuất PDF.
Bài 3: Tự Động Gửi PDF Hóa Đơn Qua Email
- Tạo bảng “Hóa Đơn” trong Excel, mỗi hàng là một hóa đơn.
- Viết Office Script để tạo PDF cho từng hàng.
- Dùng Power Automate:
- Trigger: “When a row is added”.
- Action: “Run script”.
- Action: “Send an email (V2)”.
Bài 4: In 3 Sheet Cùng Lúc Với Cài Đặt Khác Nhau
Sub PrintMultipleSheets() Dim wb As Workbook: Set wb = ThisWorkbook Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet Set sh1 = wb.Sheets("Báo cáo 1") Set sh2 = wb.Sheets("Báo cáo 2") Set sh3 = wb.Sheets("Báo cáo 3") ' Cài đặt riêng cho mỗi sheet With sh1.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 End With sh1.PrintOut With sh2.PageSetup .Orientation = xlPortrait .FitToPagesTall = 1 End With sh2.PrintOut With sh3.PageSetup .Orientation = xlPortrait .FitToPagesWide = 1 .FitToPagesTall = 1 End With sh3.PrintOut
End Sub
Bài 5: Kiểm Tra Lỗi Khi In Hàng Loạt
- Kiểm tra Print Area: Đảm bảo mỗi sheet có
PrintAreađược xác định (Page Layout → Print Area → Set Print Area). - Kiểm tra kích thước giấy: Nếu máy in mặc định là A4, nhưng một sheet thiết lập A3, sẽ gây lỗi “Paper size mismatch”. Sửa bằng
ws.PageSetup.PaperSize = xlPaperA4. - Kiểm tra ngôn ngữ và font: Đối với tiếng Việt, sử dụng font Arial, Times New Roman hoặc Tahoma để tránh lỗi khi xuất PDF.
7. Các Lưu Ý Khi In Hàng Loạt
- Kiểm Tra Trước Khi In: Luôn sử dụng “Print Preview” để chắc chắn bố cục.
- Giảm Độ Phức Tạp: Tránh sử dụng quá nhiều công thức phức tạp trong vùng in; nếu cần, copy‑paste values trước khi in.
- Sử Dụng Print Area: Đặt
Print Areacho mỗi sheet để tránh in những ô trống không cần thiết. - Quản Lý Tài Nguyên: Khi in hàng nghìn trang, máy in có thể “đơ”. Chia thành các batch nhỏ (ví dụ 200 trang/lần) để giảm tải.
- Backup: Trước khi chạy macro, sao lưu workbook để tránh mất dữ liệu do lỗi script.
- Kiểm Soát Quyền Truy Cập: Nếu sử dụng Power Automate, đảm bảo flow có quyền truy cập vào file SharePoint/OneDrive.
8. So Sánh Các Phương Pháp
| Phương pháp | Độ phức tạp | Tự động hoá | Kiểm soát định dạng | Yêu cầu phần mềm | Thời gian thiết lập |
|---|---|---|---|---|---|
| In thủ công (Ctrl+P) | Thấp | Không | Thấp (phải thiết lập mỗi lần) | Excel | Nhanh (đối với ít file) |
| In qua Explorer | Thấp | Không | Rất thấp (chỉ sheet đầu) | Windows | Nhanh |
| Macro VBA | Trung bình – Cao | Có | Cao (có thể tùy chỉnh chi tiết) | Excel (có macro) | Trung bình (cần viết code) |
| Power Automate + Office Scripts | Cao | Rất cao | Cao (được lưu trong cloud) | Office 365, Power Automate | Cao (cần tạo flow) |
| Công cụ bên thứ ba (Kutools, Print Conductor) | Thấp – Trung bình | Có (giao diện) | Trung bình | Cài đặt thêm | Thấp (cài và dùng) |
9. Kết Luận
In hàng loạt trong Excel không còn là một thách thức khó khăn nếu bạn nắm vững các công cụ và kỹ thuật phù hợp. Từ những phương pháp cơ bản như in trực tiếp từ Excel, tới macro VBA mạnh mẽ, và Power Automate hiện đại, mỗi giải pháp đều có ưu và nhược điểm riêng, phù hợp với từng môi trường làm việc và nhu cầu thực tế.
- Đối với công việc nhanh, ít file, việc in thủ công hoặc dùng Explorer là đủ.
- Khi số lượng file lớn, macro VBA là lựa chọn tối ưu: linh hoạt, tiết kiệm thời gian và cho phép tùy chỉnh sâu.
- Nếu doanh nghiệp đã đầu tư vào Office 365, hãy khai thác Power Automate để tự động hoá toàn bộ quy trình, từ tạo PDF tới gửi email.
- Đối với người không muốn viết code, công cụ bên thứ ba như Kutools hay Print Conductor sẽ giúp bạn thực hiện nhanh chóng mà không cần kiến thức lập trình.
Cuối cùng, đừng quên kiểm tra trước khi in, sao lưu dữ liệu và chia nhỏ batch nếu cần. Khi áp dụng đúng cách, in hàng loạt trong Excel sẽ trở thành một công cụ mạnh mẽ, giúp bạn tiết kiệm thời gian, giảm sai sót và nâng cao năng suất làm việc đáng kể.
Chúc bạn thành công trong việc triển khai các giải pháp in hàng loạt và đạt được hiệu quả cao nhất trong công việc!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
