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

Liên hệ QC

Người dùng đang xem chủ đề này

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

Bài viết mới nhất

Back
Top Bottom