Excel自动调整分页符,不分断合并单元格
来源:网络收集 点击: 时间:2024-08-08点击工作表有下角 切换到 分页预览 模式
并调整好 横向的分页符 和 缩放比例等打印相关参数,
这时excel会根据打印纸张的大小自动帮你设置好纵向的分页符,这时你就会发现,有些分页符一不小心会把合并的单元格分隔开

老规矩复制以下VBA代码到excel的VBA编辑器中:
===========我就是那传说中的分割线===============
Sub 调整水平分页符位置()
Dim index!, theHPageBreaksCount!, rng!, temp, count!, index2!, mark As String
Dim a As Range
mark = A 要判断的合并单元格所在列
index2 = 1 要判断的合并单元格所在列
theHPageBreaksCount = ActiveSheet.HPageBreaks.count 获取当前工作表总的分页数
当调整分页符的时候总分页数会增多,这里预估会多出50页以内,一般够用,如果不够用可以将50改大点的数
For rng = 1 To theHPageBreaksCount + 50
On Error Resume Next 发生错误直接跳出循环,结束运行
Set a = ActiveSheet.HPageBreaks(rng).Location
index = a.Row 获取分页符在第几行
Debug.Print 分页符所在行: index
Application.StatusBar = 正在分析第 rng 分页符,请稍候…………
temp = Cells(index, 1).MergeArea.Row
temp = Cells(index, 1).MergeArea.count
Do Until Cells(index, index2).MergeCells = False Or (Cells(index, index2).MergeCells = True And (index = Cells(index, index2).MergeArea.Row Or index = (Cells(index, index2).MergeArea.count + Cells(index, index2).MergeArea.Row)))
Application.StatusBar = 正在调整第 rng 分页符,请稍候…………
count = 1 + count
index = index - 1
Set ActiveSheet.HPageBreaks(rng).Location = Range(mark index)
Loop
Next
Application.StatusBar =
MsgBox 执行完毕!共调整 count 页分页符
End Sub
===========我就是那传说中的分割线===============
不知道如何使用VBA,请参考:
3/4如果你合并的单元格不在第一列,就需要修改代码中的参数值:
mark = A 要判断的合并单元格所在列
index2 = 1 要判断的合并单元格所在列
例如你合并的单元格在第二列(B列)就改为:
mark = B 要判断的合并单元格所在列
index2 = 2 要判断的合并单元格所在列

运行VBA,就会自动帮你调整好分页符了。
如果此文对你有帮助,请点个赞 谢谢


版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.ff371.cn/art_1089492.html