[VBa]自动解决excel跨页文字与边框显示错误问题

学习资料   © 文章版权由 原创者 所有,侵权请联系删除,禁止匿名转载

#楼主# 2021-12-15

跨页自动重组代码,添加后 点击错误的地方运行代码,自动重组,无须手动调整


Sub 重组跨页合并()

    Dim p, MerageAddress As String, PageCell As Range, MergeValue


    Application.ScreenUpdating = False


    ActiveWindow.View = xlPageBreakPreview '进入分页预览,才可以判断分页符位置


    For Each p In ActiveSheet.HPageBreaks  '逐页循环 hpagebreaks对象,打印区域内水平分页符的集合


        'hpagebreak.location属性,返回或设置定义分页符位置的单元格(range对象)


        Set PageCell = Cells(p.Location.Row - 1, ActiveCell.Column) '将每个分页最后一个单元格赋予变量


        '如果该页最后一个单元格具有合并属性,而且与下一页第一个单元格处于同一个合并区域


        If PageCell.MergeCells And Not Intersect(Cells(p.Location.Row, ActiveCell.Column), PageCell.MergeArea) Is Nothing Then


            MerageAddress = PageCell.MergeArea.Address '取得合并区域的地址


            MergeValue = PageCell.MergeArea(1).Value '取得合并区域的值


            PageCell.MergeArea.UnMerge '取消合并


            Range(Range(MerageAddress)(1), PageCell).Merge '将合并区域中处于本页的单元格合并


            Range(Range(MerageAddress)(1), PageCell).Borders.LineStyle = xlContinuous '添加边框

            

            With Range(PageCell.Offset(1, 0), Cells(Split(MerageAddress, "$")(4), ActiveCell.Column))


                .Merge '再将合并区域中处于下一页的单元格合并


                .Value = MergeValue '赋值


                .HorizontalAlignment = xlCenter '左右居中


                .VerticalAlignment = xlCenter '上下居中


                .Borders.LineStyle = xlContinuous


            End With


        End If


    Next


    Application.ScreenUpdating = True



End Sub


成为第一个回答人

评论

登录后才可发表内容
  • 主题

    289

  • 帖子

    329

  • 关注者

    58

Copyright © 2022 苏州筑森档案科技有限公司 | 关于我们 | 免责声明 |公安备案标志 苏公网安备32058502010784 | 苏ICP备2021011821号-2