Sổ làm việc có thể chứa tất cả các loại dữ liệu. Nếu bạn có một sổ làm việc bao gồm một số trang tính, mỗi trang chỉ chứa một lượng nhỏ dữ liệu, bạn có thể tự hỏi liệu có cách nào để in nhiều trang tính trên một tờ giấy hay không.

Có một số cách mà bạn có thể tiếp cận một giải pháp cho vấn đề này. Đầu tiên chỉ đơn giản là in nhiều trang trên mỗi tờ, sử dụng khả năng của trình điều khiển máy in của bạn. Ví dụ: tôi có một chiếc HP LaserJet cũ hơn và trình điều khiển máy in cho phép tôi chỉ định số trang sẽ in trên mỗi tờ giấy. Nếu tôi muốn in ba hoặc bốn bảng tính một trang trên một tờ giấy, tất cả những gì tôi cần làm là làm theo các bước sau:

  1. Chọn In từ menu Tệp. Excel sẽ hiển thị hộp thoại In.

  2. Trong khu vực In gì của hộp thoại, hãy chọn tùy chọn Toàn bộ Sổ làm việc.

  3. Nhấp vào nút Thuộc tính. Excel sẽ hiển thị hộp thoại Thuộc tính cho máy in, với tab Bố trí được chọn.

  4. Đặt điều khiển Pages Per Sheet thành 4.

  5. Bấm OK để đóng hộp thoại Thuộc tính.

  6. Bấm OK để thực sự in các trang tính.

Máy in của bạn có thể cung cấp một khả năng tương tự như những gì được nêu ở đây, nhưng bạn có thể cần thực hiện một số khám phá thông qua hộp thoại Thuộc tính của máy in để tìm khả năng đó. Tất nhiên, in theo cách này có thể dẫn đến một số văn bản rất nhỏ trên bản in, vì trình điều khiển máy in chỉ đơn giản là giảm từng trang để chiếm một diện tích tương xứng của trang in. Nếu bạn muốn giảm một số khoảng trắng, và do đó tăng kích thước của văn bản in, thì bạn cần phải tìm một giải pháp khác.

Nhiều người, để hợp nhất những gì được in, thực sự tạo một “trang tính in” không chứa gì ngoài các tham chiếu đến các vùng sẽ được in trên các trang tính khác trong sổ làm việc. Các tham chiếu này có thể được thực hiện thông qua các công thức tham chiếu đến dữ liệu trên mỗi trang tính hoặc bằng cách sử dụng công cụ camera trong Excel. (Công cụ máy ảnh đã được mô tả trong các số báo khác của ExcelTips.)

Đối với giải pháp tự động kết hợp nhiều trang tính thành một trang tính, bạn có thể sử dụng macro. Macro sau sẽ tạo một trang tính mới ở cuối sổ làm việc của bạn và sao chép nội dung từ tất cả các trang tính khác vào đó.

Sub PrintOnePage()

Dim wshTemp As Worksheet, wsh As Worksheet     Dim rngArr() As Range, c As Range     Dim i As Integer     Dim j As Integer

ReDim rngArr(1 To 1)

For Each wsh In ActiveWorkbook.Worksheets         i = i + 1         If i > 1 Then   ' resize array             ReDim Preserve rngArr(1 To i)

End If

On Error Resume Next         Set c = wsh.Cells.SpecialCells(xlCellTypeLastCell)

If Err = 0 Then             On Error GoTo 0

'Prevent empty rows             Do While Application.CountA(c.EntireRow) = 0 _               And c.EntireRow.Row > 1                 Set c = c.Offset(-1, 0)

Loop

Set rngArr(i) = wsh.Range(wsh.Range("A1"), c)

End If     Next wsh

'Add temp.Worksheet     Set wshTemp = Sheets.Add(after:=Worksheets(Worksheets.Count))



On Error Resume Next     With wshTemp         For i = 1 To UBound(rngArr)

If i = 1 Then                 Set c = .Range("A1")

Else                 Set c = _                   ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)

Set c = c.Offset(2, 0).End(xlToLeft)  'Skip one row             End If

'Copy-paste range (prevent empty range)

If Application.CountA(rngArr(i)) > 0 Then                 rngArr(i).Copy c             End If         Next i     End With     On Error GoTo 0

Application.CutCopyMode = False ' prevent marquies

With ActiveSheet.PageSetup     'Fit to 1 page         .Zoom = False         .FitToPagesWide = 1         .FitToPagesTall = 1     End With

'Preview New Sheet     ActiveWindow.SelectedSheets.PrintPreview

'Print Desired Number of Copies     i = InputBox("Print how many copies?", "ExcelTips", 1)

If IsNumeric(i) Then         If i > 0 Then             ActiveSheet.PrintOut Copies:=i         End If     End If

'Delete temp.Worksheet?

If MsgBox("Delete the temporary worksheet?", _       vbYesNo, "ExcelTips") = vbYes Then         Application.DisplayAlerts = False         wshTemp.Delete         Application.DisplayAlerts = True     End If End Sub

Sau khi trang tính kết hợp được đặt lại với nhau, macro sẽ hiển thị trang tính bằng cách sử dụng Xem trước khi in. Khi bạn đóng Xem trước khi in, nó sẽ hỏi bạn muốn in bao nhiêu bản trang tính. Nếu bạn nhập một số lớn hơn 0, thì nhiều bản sao đó sẽ được in. Cuối cùng, macro đề nghị xóa trang tính kết hợp cho bạn ngay trước khi kết thúc.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3243) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: