Các Bạn xem giúp cách ngắt trang

Liên hệ QC

ndhmoney686

Thành viên thường trực
Tham gia
25/4/12
Bài viết
376
Được thích
104
Các Bạn giúp mình có cách nào để sử dụng một công thức nào đó để nhận biết được đoạn ngắt trang.
Ví dụ: Dòng số 20 là hết trang 1 (Thì ngay tại ô A20 liệu có thể đặt 1 công thức để hiển thị lên dòng chữ là "ngắt trang" ? Mong các Bạn giúp đỡ!
 
View, click Page Break Review sẽ cho bạn thấy ngắt trang (ngang, dọc) trong Normal View.
 
Ngắt trang chỉ có tính chất tạm thời không ổn định (vì có thể thay đổi điều chỉnh - ngắt tự động, ngắt thủ công) do đó khó có thể xác định bằng công thức. Chỉ có thể xác định bằng VBA. Ngoài ra không rõ ý định của bạn chèn thêm thông tin "ngắt trang" dùng cho mục đích gì - vì có thể thiết lập trong mục footer.
 
Bạn có thể giúp mình code hoặc bằng công thức nào đấy để (Ví dụ tại ô A20 là ngắt hết trang. Khi in thì khi đến đoạn ngắt đó mình muốn định dạng border đường viền ngoài kẻ liền còn bên trong là chấm chấm. Cho nên mình muốn tại ô A20 đặt công thức gì để nó phát hiện và thông báo một chữ nào đó "ngắt trang" chẳng hạn để mình sử dụng condition formarting để định dạng đường viền kẻ (nếu ô nào đó có chứ "ngắt trang" thì nó tạo viền kẻ cho mình để in theo ý muốn)
Các Bạn có cách nào không giúp đỡ mình nhé. Cảm ơn các Bạn nhiều!
 
Vì không có file nên không biết sẽ tác động như thế nào. Tôi gửi tạm macro dưới để bạn tham khảo:
PHP:
Sub getPageBreak()
Dim sh As Worksheet, ra As Range, hPB As HPageBreak
With Application
.ScreenUpdating = False
    Set sh = ActiveSheet
    sh.ResetAllPageBreaks
    sh.Range("A:A").ClearComments
    ActiveWindow.View = xlPageBreakPreview
    For i = 1 To sh.HPageBreaks.Count
        sh.HPageBreaks(i).Location.Offset(-1).AddComment ("Ngat trang tai day")
    Next
    ActiveWindow.View = xlNormalView
.ScreenUpdating = True
End With
End Sub
Khi chạy, macro sẽ thiết lập chế độ ngắt trang và đếm có bao nhiêu ngắt trang, sau đó sẽ chèn vào ô cuối của trang một dòng chú thích: "Ngat trang tai day" để bạn tùy ý xử lý. Dòng cuối cùng của sheet chưa đặt thuộc tính này.
 
Vì không có file nên không biết sẽ tác động như thế nào. Tôi gửi tạm macro dưới để bạn tham khảo:
PHP:
Sub getPageBreak()
Dim sh As Worksheet, ra As Range, hPB As HPageBreak
With Application
.ScreenUpdating = False
    Set sh = ActiveSheet
    sh.ResetAllPageBreaks
    sh.Range("A:A").ClearComments
    ActiveWindow.View = xlPageBreakPreview
    For i = 1 To sh.HPageBreaks.Count
        sh.HPageBreaks(i).Location.Offset(-1).AddComment ("Ngat trang tai day")
    Next
    ActiveWindow.View = xlNormalView
.ScreenUpdating = True
End With
End Sub
Khi chạy, macro sẽ thiết lập chế độ ngắt trang và đếm có bao nhiêu ngắt trang, sau đó sẽ chèn vào ô cuối của trang một dòng chú thích: "Ngat trang tai day" để bạn tùy ý xử lý. Dòng cuối cùng của sheet chưa đặt thuộc tính này.


Cảm ơn Bạn đã giúp đỡ! Mình thấy nó chỉ hiện lên coment. Bạn giúp nó hiện luôn (ngắt trang tại đây) vào ô đó luôn.
Nếu được bạn có thể viết giúp mình đoạn code tự động tạo đường viền border liền như file mình đính kèm thì tuyệt vời. Mong Bạn và các Bạn giúp đỡ.
 

File đính kèm

Thay bằng code sau:
PHP:
Sub getPageBreak()
Dim sh As Worksheet, ra As Range, hPB As HPageBreak, i As Long
With Application
.ScreenUpdating = False
    Set sh = ActiveSheet
    sh.ResetAllPageBreaks
    sh.Range("A:A").ClearComments
    ActiveWindow.View = xlPageBreakPreview
    On Error Resume Next
    For i = 1 To sh.HPageBreaks.Count       
        'thay doi gia tri 3 trong Resize(2, 3) theo so cot thuc te cua bang tinh'
        With sh.HPageBreaks(i).Location.Offset(-1, 1).Resize(2, 3)
            .Borders(xlInsideHorizontal).LineStyle = xlLineStyleNone
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous ' 1 net - 2 net: xlDouble'
        End With
    Next
    On Error Goto 0
    ActiveWindow.View = xlNormalView
.ScreenUpdating = True
End With
End Sub
 
Thay bằng code sau:
PHP:
Sub getPageBreak()
Dim sh As Worksheet, ra As Range, hPB As HPageBreak, i As Long
With Application
.ScreenUpdating = False
    Set sh = ActiveSheet
    sh.ResetAllPageBreaks
    sh.Range("A:A").ClearComments
    ActiveWindow.View = xlPageBreakPreview
    On Error Resume Next
    For i = 1 To sh.HPageBreaks.Count       
        'thay doi gia tri 3 trong Resize(2, 3) theo so cot thuc te cua bang tinh'
        With sh.HPageBreaks(i).Location.Offset(-1, 1).Resize(2, 3)
            .Borders(xlInsideHorizontal).LineStyle = xlLineStyleNone
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous ' 1 net - 2 net: xlDouble'
        End With
    Next
    On Error Goto 0
    ActiveWindow.View = xlNormalView
.ScreenUpdating = True
End With
End Sub


Cảm ơn Bạn Hoangvuluan rất nhiều!
 
Chào các bạn!
Bạn nào có thể giúp mình khắc phục cái này được không?
Khi in trong Excel 2010 mà có từ 2 trang in trở lên, và khi qua trang in thì trang đó lạị không có đường viền trên viền dưới(và kể cả trang đầu tiên cũng không có viền dưới), khi in ra nhìn rất mất thẩm mỹ:
2.gif
Mình muốn trang in phải tự động có viền mỗi khi qua trang:(đây là mình làm thủ công từng trang in rất mất thời gian khi in nhiều trang)
3.gif
Mong nhận được sự giúp đỡ từ các bạn.
Cảm ơn rất nhiều!
 
Chào các bạn!
Bạn nào có thể giúp mình khắc phục cái này được không?
Khi in trong Excel 2010 mà có từ 2 trang in trở lên, và khi qua trang in thì trang đó lạị không có đường viền trên viền dưới(và kể cả trang đầu tiên cũng không có viền dưới), khi in ra nhìn rất mất thẩm mỹ:
View attachment 108826
Mình muốn trang in phải tự động có viền mỗi khi qua trang:(đây là mình làm thủ công từng trang in rất mất thời gian khi in nhiều trang)
View attachment 108827
Mong nhận được sự giúp đỡ từ các bạn.
Cảm ơn rất nhiều!

ÔI bạn ơi....
Bạn hoangvuluan vừa mới trả lời rất là hay về vấn đề của bạn rùi kìa... thì bạn lại hỏi lại cho cái của bạn ngay lặp tức!!!!! đọc kỹ lại để áp dụng cho chính vấn đề của mình nha bạn!!!
 
Web KT

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

Back
Top Bottom