In mọi giá trị trong trường trang - Mẹo Excel

Mục lục

Raj hỏi:

Tôi có một bảng tổng hợp Excel được thiết lập với 150 giá trị khác nhau trong trường trang. Làm cách nào để chạy macro để in từng trang riêng lẻ? Tôi đã thử ghi macro, nhưng nó khó mã hóa tên của từng trang và một số trang đó có thể không có ở đó từ tuần này sang tuần khác.

Visual Basic giúp việc này trở nên nhanh chóng. Macro này sử dụng như sau:

  • Các PageFields bộ sưu tập sẽ cho bạn biết tên của lĩnh vực trang đầu tiên trong bảng tổng hợp.
  • Bộ sưu tập PivotItems là danh sách tất cả các mục (trang) trong trường trang.
  • Các CurrentPage sở hữu cho phép bạn thay đổi trang nào được hiển thị trong bảng tổng hợp.
Sub PrintAll() ' Find name of page field PageField1 = ActiveSheet.PivotTables("PivotTable1").PageFields(1) ' Save the name of the page field displayed when macro begins OrigPage = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage ' Determine how many pages there are in page field NumPages = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).PivotItems.Count For i = 1 To NumPages ThisPage = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).PivotItems(i) ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = ThisPage ActiveWindow.SelectedSheets.PrintOut Next i ' Print the (all) page ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = "(all)" ActiveWindow.SelectedSheets.PrintOut ' Restore view back to original page ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = OrigPage End Sub

Một lời khuyên dành cho Raj để báo cáo lại với gợi ý này. Macro trên sẽ không hoạt động khi bạn sắp xếp bảng tổng hợp trong Nâng cao. Đặt lại cài đặt này về thủ công sẽ khắc phục được sự cố.

Ghi chú

Mẹo này sẽ lặp lại mọi trường trang để in chúng. Nếu bạn muốn tạo một sổ làm việc với 150 trang tính khác nhau, một trang tính cho mỗi giá trị trường trang, bạn có thể sử dụng tính năng Hiển thị Trang.

thú vị bài viết...