Nhờ Anh/Chị gỡ lỗi đoạn code chọn vùng in theo điều kiện

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

giaiphapexcel93@

Thành viên mới
Tham gia
17/12/21
Bài viết
17
Được thích
1
Nội dung: Trong sheet "YCNT" vùng in sẽ được chọn là A1:Z42 nếu khi tổng chiều cao các dòng không vượt quá chiều cao của khổ giấy A4 (<=832 Fixcel)
Vùng in sẽ được chọn là A1:Z34 và A34:Z42 khi tổng chiều cao các dòng vượt quá chiều cao của khổ giấy A4 (>832 Fixcel)
Đoạn code dưới đây hoạt động sai khi (<=832 Fixcel) (Vùng in được chọn là A1:Z34 và A34:Z42)
khi (>=832 Fixcel) (Vùng in được chọn là A1:Z33 và A33:Z33 và A34:Z42) Với vị trí ngắt A33:Z33 là ngắt trang tự động của Excel
Nhờ Anh/Chị tìm và sửa lỗi giúo em với ạh. Em cảm ơn nhiều

Sub CheckRowWidth()
Dim ws As Worksheet
Dim totalWidth As Double
Dim i As Integer

Set ws = ThisWorkbook.Sheets("YCNT")
totalWidth = 0

' Tính tổng chiều cao của tất cả các dòng từ A1:A42
For i = 1 To 42
totalWidth = totalWidth + ws.Rows(i).RowHeight
Next i

' Kiểm tra tổng chiều cao
If totalWidth <= 832 Then
' Nếu tổng chiều cao <= 832 Fixcel thì vùng in A1:Z42 được chọn
ws.PageSetup.PrintArea = "A1:Z42"
Else
' Nếu tổng chiều cao > 832 Fixcel thì vùng in mới là A1:Z34 và A35:Z42
ws.PageSetup.PrintArea = "A1:Z34,A34:Z42"
End If

Application.ScreenUpdating = True
End Sub
 
'Bạn bổ sung thêm dòng chèn .PageBreak'
Mã:
' Nếu tổng chiều cao > 832 Fixcel thì vùng in mới là A1:Z34 và A35:Z42
ws.PageSetup.PrintArea = "A1:Z42"
'Bạn bổ sung thêm dòng chèn .PageBreak'
ws.Rows(34).PageBreak = xlPageBreakManual
Góp ý thêm: nếu chia tách thì bạn nên kiểm tra từ 1 --> 34 xem có nhỏ hơn 1 tờ A4 không đã, lỡ 1 --> 34 nó >1 tờ thì cũng đâu có ý nghĩa gì ?
 
Lần chỉnh sửa cuối:
'Bạn bổ sung thêm dòng chèn .PageBreak'
Mã:
' Nếu tổng chiều cao > 832 Fixcel thì vùng in mới là A1:Z34 và A35:Z42
ws.PageSetup.PrintArea = "A1:Z42"
'Bạn bổ sung thêm dòng chèn .PageBreak'
ws.Rows(34).PageBreak = xlPageBreakManual
Góp ý thêm: nếu chia tách thì bạn nên kiểm tra từ 1 --> 34 xem có nhỏ hơn 1 tờ A4 không đã, lỡ 1 --> 34 nó >1 tờ thì cũng đâu có ý nghĩa gì ?
Cảm ơn ý kiến của bạn, nhưng ý của mình là nếu từ 1-34 mà lớn hơn A4 thì tự động fit vùng in luôn (vùng in sau khi fit là A1:Z34)
 
Web KT
Back
Top Bottom