半导体空调,谁是谁的谁鲜橙,郭德纲济公传2
应用场景
跨页合并单元格后重新合并并适应分页打印
知识要点
1:ActiveWindow.View = xlPageBreakPreview 分页预览模式,判断分页符位置
2:HPageBreaks 对象 打印区域内水平分页符的集合
3:HPageBreak.Location 属性 返回或设置定义分页符位置的单元格(Range 对象)。
4:判断页面的最后一个单元格与下一页第一个单元格是否处于同一合并区域
5:Range.UnMerge 方法 将合并区域分解为独立的单元格
6:合并单元格是否跨页只能在分页预览模式下才体现出来
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
ActiveWindow.View = xlNormalView '还原为常规视图
End Sub
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
同一个Excel 文件中的任意多个工作表合并到一个表中的神技
Excel 根据身份证直接算出退休年月 用哪个函数 如何区别男女
Excel 中如何选择正确的地图类型及各种地图类型的应用场景
根据入职日期用Excel 计算工龄补贴 满1年补贴50满2年补贴100
Excel 微图表对数据进行可视化处理实现数据与图表的一体化衔接
被雪藏的datedif()函数的典型用法 适用最新版本的Excel
EXCEL 数据分析之合并单元格后按合计得分排序的整个心路历程
Excel-VBA批量将表达式转换为运算结果把代表的汉字给替换掉
网友评论