Nhờ các anh em trong diễn đàn viết hộ Code kẻ dòng cuối mỗi bảng (1 người xem)

Liên hệ QC

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

quoccuonghd

Thành viên hoạt động
Tham gia
12/6/10
Bài viết
116
Được thích
7
Giới tính
Nam
Nghề nghiệp
Kỹ sư XD
Mình muốn nhờ mọi người viết giúp hộ code có nút nhấn một cái thì bảng tính sẽ tự kẻ dòng cuối cho bảng của mỗi trang. và code đó có thể áp dụng cho nhiều bảng tính khác được. Mong mọi người giúp đỡ.
Cảm ơn nhiều!
 

File đính kèm

Mình muốn nhờ mọi người viết giúp hộ code có nút nhấn một cái thì bảng tính sẽ tự kẻ dòng cuối cho bảng của mỗi trang. và code đó có thể áp dụng cho nhiều bảng tính khác được. Mong mọi người giúp đỡ.
Cảm ơn nhiều!
- mình nhìn vào dòng cuối của sheet PL3a (D3) chẳng có gì đặc biệt cả,
- bạn mô tả thêm xem muốn kẻ như thế nào ?

'-----
hay ý của bạn là kẻ toàn bảng từ ô A1 đến M751 ?
 
Upvote 0
Bạn thử code này. Không chỉ kẻ cuối bảng mà còn "kẻ lại" những ô mà bạn kẻ sót hoặc kẻ sai.
Mã:
Sub Borders()
    y = ActiveSheet.UsedRange.Columns.Count
    x = [a65536].End(3).Row - 3
    With [a4].Resize(x, y)
        .Borders.LineStyle = 0
        .Borders.LineStyle = 1
        .Borders(12).LineStyle = 2
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Ý của mình là nhờ các bạn kẻ giúp một đường kẻ liền của dòng cuối trang mỗi khi bảng phân trang để in ra đẹp hơn. Bảng của mình là đang dùng đường kẻ chấm chấm mờ, cứ hết mỗi trang trước khi in mình lại phải kẻ thủ công rất mất thời gian. Mình nhờ các bạn giúp để còn ứng dụng cho nhiều bảng khác.
 
Upvote 0
Ý của mình là nhờ các bạn kẻ giúp một đường kẻ liền của dòng cuối trang mỗi khi bảng phân trang để in ra đẹp hơn. Bảng của mình là đang dùng đường kẻ chấm chấm mờ, cứ hết mỗi trang trước khi in mình lại phải kẻ thủ công rất mất thời gian. Mình nhờ các bạn giúp để còn ứng dụng cho nhiều bảng khác.
 
Upvote 0
- mình nhìn vào dòng cuối của sheet PL3a (D3) chẳng có gì đặc biệt cả,
- bạn mô tả thêm xem muốn kẻ như thế nào ?

'-----
hay ý của bạn là kẻ toàn bảng từ ô A1 đến M751 ?

Ý của mình là nhờ các bạn kẻ giúp một đường kẻ liền của dòng cuối trang mỗi khi bảng phân trang để in ra đẹp hơn. Bảng của mình là đang dùng đường kẻ chấm chấm mờ, cứ hết mỗi trang trước khi in mình lại phải kẻ thủ công rất mất thời gian. Mình nhờ các bạn giúp để còn ứng dụng cho nhiều bảng khác.
 
Upvote 0
Ý của mình là nhờ các bạn kẻ giúp một đường kẻ liền của dòng cuối trang mỗi khi bảng phân trang để in ra đẹp hơn. Bảng của mình là đang dùng đường kẻ chấm chấm mờ, cứ hết mỗi trang trước khi in mình lại phải kẻ thủ công rất mất thời gian. Mình nhờ các bạn giúp để còn ứng dụng cho nhiều bảng khác.
mình đã hiểu :-=, bạn tải file đính kèm về xem sao nhé !
Run Macro --> bấm nút Format Cells (Borders)
Mã:
Sub GPE_FormatCells()
    Cells.EntireRow.Hidden = False 'Unhide Rows
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData  'dang dung` Filter
    '---------
    Call TaoBorderVung
    Call TaoBorderCuoiTrang
End Sub

Sub TaoBorderVung() 'tu` A4 --> cot M
    With Range(Range("A65000").End(xlUp), Range("M4"))
        .Borders.LineStyle = xlNone 'xoa' Border cu~
        '--------
        .Borders.LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).Weight = xlHairline
        'hoac .Borders(xlInsideHorizontal).LineStyle = xlDash
    End With
End Sub

Sub TaoBorderCuoiTrang() 'tu` cot A --> M
Dim ws As Worksheet, i As Long
Dim lngPageSumRow As Long
Dim strPageEndRow As String 'Dia chi dong co' dau ngat trang
    
    ActiveWindow.View = xlPageBreakPreview 'Ðua che do view ve PageBreak
    
    Set ws = ActiveSheet
    
    For i = 1 To ws.PageSetup.Pages.Count - 1 'ko tinh' trang cuoi'
        On Error Resume Next
        lngPageSumRow = ws.HPageBreaks(i).Location.Row - 1
        strPageEndRow = "A" & lngPageSumRow & ":" & "M" & lngPageSumRow
        With ws.Range(strPageEndRow).Borders(xlEdgeBottom)
            .LineStyle = xlNone 'do Sub TaoBorder
            .LineStyle = xlContinuous
        End With
    Next

    ActiveWindow.View = xlNormalView
    
    Set ws = Nothing
End Sub
 

File đính kèm

Upvote 0
Bạn thử dùng Code sau thử xem sao (Dòng mau đỏ mình thêm vào để Kiểm tra, ổn rồi thì bỏ đi):

Mã:
Sub FormatReport()
Dim i As Long, OldView As Integer, OldSh As String, ScrUp As Boolean
ScrUp = Application.ScreenUpdating
OldSh = ActiveSheet.Name
Application.ScreenUpdating = False
With Sheet1
.Activate
OldView = ActiveWindow.View
ActiveWindow.View = 2
.Range("A4:M65536").Borders.LineStyle = xlNone
.Range("A4:M65536").Interior.ColorIndex = 0
.Range("A4:M" & .[A65536].End(3).Row).Borders.Weight = xlThin
.Range("A4:M" & .[A65536].End(3).Row).Borders(xlInsideHorizontal).Weight = xlHairline
For i = 1 To .HPageBreaks.Count
[COLOR=#ff0000].HPageBreaks(i).Location.Offset(-1).Resize(, 13).Interior.ColorIndex = 3[/COLOR]
.HPageBreaks(i).Location.Offset(-1).Resize(, 13).Borders(xlEdgeBottom).Weight = xlThin
Next
ActiveWindow.View = OldView
End With
ThisWorkbook.Sheets(OldSh).Select
Application.ScreenUpdating = ScrUp
End Sub
 
Upvote 0
Bạn thử dùng Code sau thử xem sao (Dòng mau đỏ mình thêm vào để Kiểm tra, ổn rồi thì bỏ đi):

Mã:
Sub FormatReport()
Dim i As Long, OldView As Integer, OldSh As String, ScrUp As Boolean
ScrUp = Application.ScreenUpdating
OldSh = ActiveSheet.Name
Application.ScreenUpdating = False
With Sheet1
.Activate
OldView = ActiveWindow.View
ActiveWindow.View = 2
.Range("A4:M65536").Borders.LineStyle = xlNone
.Range("A4:M65536").Interior.ColorIndex = 0
.Range("A4:M" & .[A65536].End(3).Row).Borders.Weight = xlThin
.Range("A4:M" & .[A65536].End(3).Row).Borders(xlInsideHorizontal).Weight = xlHairline
For i = 1 To .HPageBreaks.Count
[COLOR=#ff0000].HPageBreaks(i).Location.Offset(-1).Resize(, 13).Interior.ColorIndex = 3[/COLOR]
.HPageBreaks(i).Location.Offset(-1).Resize(, 13).Borders(xlEdgeBottom).Weight = xlThin
Next
ActiveWindow.View = OldView
End With
ThisWorkbook.Sheets(OldSh).Select
Application.ScreenUpdating = ScrUp
End Sub
Cảm ơn bạn. Đúng code mình cần rồi. cảm ơn nhiều
 
Upvote 0
Sửa lại code tại # 3
Mã:
Sub Borders()
    Application.ScreenUpdating = False
    On Error Resume Next
    y = ActiveSheet.UsedRange.Columns.Count
    x = [a65536].End(3).Row - 3
    With [a4].Resize(x, y)
        .Borders.LineStyle = 0
        .Borders.LineStyle = 1
        .Borders(12).LineStyle = 3
    End With
    ActiveWindow.View = 2
    For i = 1 To ActiveSheet.HPageBreaks.Count
        Range("A" & ActiveSheet.HPageBreaks(i).Location.Row - 1).Resize(, y).Borders(4).LineStyle = 1
    Next
    ActiveWindow.View = 1
End Sub
 
Upvote 0
mình đã hiểu :-=, bạn tải file đính kèm về xem sao nhé !
Run Macro --> bấm nút Format Cells (Borders)
Mã:
Sub GPE_FormatCells()
    Cells.EntireRow.Hidden = False 'Unhide Rows
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData  'dang dung` Filter
    '---------
    Call TaoBorderVung
    Call TaoBorderCuoiTrang
End Sub

Sub TaoBorderVung() 'tu` A4 --> cot M
    With Range(Range("A65000").End(xlUp), Range("M4"))
        .Borders.LineStyle = xlNone 'xoa' Border cu~
        '--------
        .Borders.LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).Weight = xlHairline
        'hoac .Borders(xlInsideHorizontal).LineStyle = xlDash
    End With
End Sub

Sub TaoBorderCuoiTrang() 'tu` cot A --> M
Dim ws As Worksheet, i As Long
Dim lngPageSumRow As Long
Dim strPageEndRow As String 'Dia chi dong co' dau ngat trang
    
    ActiveWindow.View = xlPageBreakPreview 'Ðua che do view ve PageBreak
    
    Set ws = ActiveSheet
    
    For i = 1 To ws.PageSetup.Pages.Count - 1 'ko tinh' trang cuoi'
        On Error Resume Next
        lngPageSumRow = ws.HPageBreaks(i).Location.Row - 1
        strPageEndRow = "A" & lngPageSumRow & ":" & "M" & lngPageSumRow
        With ws.Range(strPageEndRow).Borders(xlEdgeBottom)
            .LineStyle = xlNone 'do Sub TaoBorder
            .LineStyle = xlContinuous
        End With
    Next

    ActiveWindow.View = xlNormalView
    
    Set ws = Nothing
End Sub
Lần trước tải file của bạn xuống rồi mà quên chưa cảm ơn bạn hôm nay quay lai xem mới biết là có lỗi với bạn. code nay của bạn viết giúp mình, mình đã chạy thử thì đến đoạn For i = 1 To ws.PageSetup.Pages.Count - 1 'ko tinh' trang cuoi' là bị lỗi ko chạy nữa bạn ah. mình dùng office 2003 bạn ah. Nếu rảnh bạn có thể ktra lại giúp mình xem có thể khắc phục được tại sao lạ lỗi tại dòng đó không.
 
Upvote 0
Lần trước tải file của bạn xuống rồi mà quên chưa cảm ơn bạn hôm nay quay lai xem mới biết là có lỗi với bạn. code nay của bạn viết giúp mình, mình đã chạy thử thì đến đoạn For i = 1 To ws.PageSetup.Pages.Count - 1 'ko tinh' trang cuoi' là bị lỗi ko chạy nữa bạn ah. mình dùng office 2003 bạn ah. Nếu rảnh bạn có thể ktra lại giúp mình xem có thể khắc phục được tại sao lạ lỗi tại dòng đó không.

- bạn ko nói thì mình cũng chẳng biết, vì chỉ test với 2013 --> ko thấy báo lỗi.
- mình thấy code tại #8, #10 đều cho ra kết quả đúng cả (sao ko thấy bạn Trả lời #10 ?)
- nếu sửa code lại thì cũng dựa vào 2 bài đó mà thôi ... **~**
 
Upvote 0
Bạn thử dùng Code sau thử xem sao (Dòng mau đỏ mình thêm vào để Kiểm tra, ổn rồi thì bỏ đi):

Mã:
Sub FormatReport()
Dim i As Long, OldView As Integer, OldSh As String, ScrUp As Boolean
ScrUp = Application.ScreenUpdating
OldSh = ActiveSheet.Name
Application.ScreenUpdating = False
With Sheet1
.Activate
OldView = ActiveWindow.View
ActiveWindow.View = 2
.Range("A4:M65536").Borders.LineStyle = xlNone
.Range("A4:M65536").Interior.ColorIndex = 0
.Range("A4:M" & .[A65536].End(3).Row).Borders.Weight = xlThin
.Range("A4:M" & .[A65536].End(3).Row).Borders(xlInsideHorizontal).Weight = xlHairline
For i = 1 To .HPageBreaks.Count
[COLOR=#ff0000].HPageBreaks(i).Location.Offset(-1).Resize(, 13).Interior.ColorIndex = 3[/COLOR]
.HPageBreaks(i).Location.Offset(-1).Resize(, 13).Borders(xlEdgeBottom).Weight = xlThin
Next
ActiveWindow.View = OldView
End With
ThisWorkbook.Sheets(OldSh).Select
Application.ScreenUpdating = ScrUp
End Sub
Anh ơi em có áp dụng mã code này cho file của em , khi e chạy thì báo lỗi, mong a chỉ giúp ạ!234.jpg
 

File đính kèm

Upvote 0
Anh ơi em có áp dụng mã code này cho file của em , khi e chạy thì báo lỗi, mong a chỉ giúp ạ!View attachment 199105
1/ File của bạn chẳng có code nào làm sao người khác biết sai chỗ nào?
2/ Trong hình là code hoạt động với sheet1, file bạn đâu có sheet1?
3/ Chủ đề dù giống nhau nhưng bạn cũng phải đưa file của bạn lên và nói rõ ý bạn muốn gì, bài người ta từ năm 2014 sao biết được là "y chang" của bạn?
 
Upvote 0
1/ File của bạn chẳng có code nào làm sao người khác biết sai chỗ nào?
2/ Trong hình là code hoạt động với sheet1, file bạn đâu có sheet1?
3/ Chủ đề nếu giống nhau nhưng bạn cũng phải đưa file của bạn lên và nói rõ ý bạn muốn gì, bài người ta từ năm 2014 sao biết được là "y chang" của bạn?
Vâng e vừa thử không được, hi e vừa đăng lại ý tưởng lên, A giúp e ạ!
https://www.giaiphapexcel.com/diendan/threads/nhờ-anh-chị-giúp-đỡ-về-vấn-đề-in-trong-excel.136008/
 
Upvote 0
Web KT

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

Back
Top Bottom