ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何将跨页的合并单元格拆分使两页中都能显示?

如何将跨页的合并单元格拆分使两页中都能显示?

作者:绿色风 分类: 时间:2022-08-17 浏览:373
楼主
amulee
Q:如何将跨页的合并单元格拆分使两页中都能显示?
A:数据透视表是一个方便的汇总工具。当采用数据透视表进行汇总后,有些行标题可能出现跨页问题。此时如打印该表,则会在某页缺失行标题,如图所示:

 
如何编写VBA使这些跨页的合并单元格自动拆分,使其分别显示在两个页面中,效果如图:

 

请参考以下代码:

  1. Sub 拆分()
  2.     Dim DSht As Worksheet
  3.     Dim OSht As Worksheet
  4.     Dim PB As HPageBreak
  5.     Dim StLine As Long
  6.     Dim MidLine As Long
  7.     Dim EdLine As Long
  8.     Dim Rng As Range
  9.     Dim ColN As Integer
  10.     Set DSht = Worksheets.Add
  11.     Set OSht = Sheet1
  12.     Application.ScreenUpdating = False
  13.     DSht.Select
  14.     '复制原表
  15.     With OSht
  16.         .Range("B4:F" & .Range("B65536").End(xlUp).Row).Copy DSht.Range("B1")
  17.     End With
  18.     ActiveWindow.View = xlPageBreakPreview
  19.     With DSht
  20.         For ColN = 1 To 2
  21.             For Each PB In .HPageBreaks
  22.                 'B列
  23.                 If PB.Location.Offset(-1, ColN).MergeArea.Address = PB.Location.Offset(0, ColN).MergeArea.Address Then
  24.                     Set Rng = PB.Location.Offset(-1, ColN).MergeArea
  25.                     'Get StartLine and EndLine
  26.                     StLine = Rng.Cells(1).Row
  27.                     MidLine = PB.Location.Row
  28.                     EdLine = Rng.Cells(Rng.Cells.Count).Row
  29.                     '取消合并
  30.                     Rng.UnMerge
  31.                     '写入值
  32.                     .Cells(MidLine, 1 + ColN) = .Cells(StLine, 1 + ColN).Text
  33.                     '重新合并
  34.                     .Range(.Cells(StLine, 1 + ColN), .Cells(MidLine - 1, 1 + ColN)).Merge
  35.                     .Range(.Cells(MidLine, 1 + ColN), .Cells(EdLine - 1, 1 + ColN)).Merge
  36.                 End If
  37.             Next
  38.         Next ColN
  39.     End With
  40.     Application.ScreenUpdating = True
  41. End Sub



单元格合并后的打印问题.rar
2楼
liucq
学习           
3楼
tubulasi
为什么我的C列没办法自动跨页断行呢?只有B列能达到效果……
4楼
shenlong2006
这个挺实用
5楼
meggieliu
不得不说,很好很强大啊



免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap