Phân trang bảng in

Liên hệ QC

vulunktheky

Thành viên thường trực
Tham gia
2/3/18
Bài viết
268
Được thích
84
Giới tính
Nam
Chào anh chị và các bạn.
Trong quá trình in ấn mình có 1 vấn đề khó khăn trong việc ngắt trang in.
Mình có 1 file in mẫu, mình muốn in mỗi trang chỉ có 18 dòng tương ứng với 9 người công nhân (1 dòng tiêu đề và 1 dòng dữ liệu) với điều kiện theo:
+ Bộ phận
+ khu
+chuyền
Khi hết 1 bộ phận/Khu/chuyền thì sẽ ngắt qua 1 trang mới cho bộ phận/khu chuyền tiếp theo. và cứ tiếp tục như vậy cho đến hết danh sách. Vì mình làm tay rất lâu nên nhờ anh chị và các bạn hỗ trợ giúp mình.
Điều kiện phân trang mình có tách ra một sheet riêng.
Cảm ơn anh chị và các bạn giúp đỡ.
 

File đính kèm

  • IN DÂY LƯƠNG THÁNG.xlsb
    3.4 MB · Đọc: 8
Chào anh chị và các bạn.
Trong quá trình in ấn mình có 1 vấn đề khó khăn trong việc ngắt trang in.
Mình có 1 file in mẫu, mình muốn in mỗi trang chỉ có 18 dòng tương ứng với 9 người công nhân (1 dòng tiêu đề và 1 dòng dữ liệu) với điều kiện theo:
+ Bộ phận
+ khu
+chuyền
Khi hết 1 bộ phận/Khu/chuyền thì sẽ ngắt qua 1 trang mới cho bộ phận/khu chuyền tiếp theo. và cứ tiếp tục như vậy cho đến hết danh sách. Vì mình làm tay rất lâu nên nhờ anh chị và các bạn hỗ trợ giúp mình.
Điều kiện phân trang mình có tách ra một sheet riêng.
Cảm ơn anh chị và các bạn giúp đỡ.
Thử code này xem sao
PHP:
Sub InsertPageBreaks()
Dim Tmp1 As String, Tmp2 As String, Rng As Range, K As Long
With Sheets("IN DAYLUONG")
.Cells.PageBreak = xlPageBreakNone
Set Rng = .Range("A2:AS" & .Range("B" & Rows.Count).End(3).Row)
Tmp1 = Rng(2, 5).Value & Rng(2, 6).Value & Rng(2, 7).Value
For K = 2 To Rng.Rows.Count Step 2
    If K > 2 Then Tmp1 = Rng(K - 2, 5).Value & Rng(K - 2, 6).Value & Rng(K - 2, 7).Value
    Tmp2 = Rng(K, 5).Value & Rng(K, 6).Value & Rng(K, 7).Value
        If Tmp2 <> Tmp1 Then
            .Rows(K).PageBreak = xlPageBreakManual
        End If
Next
End With
End Sub
 
Upvote 0
Thử code này xem sao
PHP:
Sub InsertPageBreaks()
Dim Tmp1 As String, Tmp2 As String, Rng As Range, K As Long
With Sheets("IN DAYLUONG")
.Cells.PageBreak = xlPageBreakNone
Set Rng = .Range("A2:AS" & .Range("B" & Rows.Count).End(3).Row)
Tmp1 = Rng(2, 5).Value & Rng(2, 6).Value & Rng(2, 7).Value
For K = 2 To Rng.Rows.Count Step 2
    If K > 2 Then Tmp1 = Rng(K - 2, 5).Value & Rng(K - 2, 6).Value & Rng(K - 2, 7).Value
    Tmp2 = Rng(K, 5).Value & Rng(K, 6).Value & Rng(K, 7).Value
        If Tmp2 <> Tmp1 Then
            .Rows(K).PageBreak = xlPageBreakManual
        End If
Next
End With
End Sub
cảm ơn anh, e kiểm thử xem như thế nào
 
Upvote 0
Web KT
Back
Top Bottom