Excel自动调整分页符,不分断合并单元格
1、点击工作表有下角 切换到 分页预览 模式
并调整好 横向的分页符 和 缩放比例等打印相关参数,
这时excel会根据打印纸张的大小自动帮你设置好纵向的分页符,这时你就会发现,有些分页符一不小心会把合并的单元格分隔开
2、老规矩复制以下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、如果你合并的单元格不在第一列,就需要修改代码中的参数值:
mark = "A" '要判断的合并单元格所在列
index2 = 1 '要判断的合并单元格所在列
例如你合并的单元格在第二列(B列)就改为:
mark = "B" '要判断的合并单元格所在列
index2 = 2 '要判断的合并单元格所在列
4、运行VBA,就会自动帮你调整好分页符了。
如果此文对你有帮助,请点个赞 谢谢