Excel自动调整分页符,不分断合并单元格

2025-10-23 07:16:04

1、点击工作表有下角 切换到 分页预览 模式

并调整好 横向的分页符 和 缩放比例等打印相关参数,

这时excel会根据打印纸张的大小自动帮你设置好纵向的分页符,这时你就会发现,有些分页符一不小心会把合并的单元格分隔开

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 '要判断的合并单元格所在列

Excel自动调整分页符,不分断合并单元格

4、运行VBA,就会自动帮你调整好分页符了。

如果此文对你有帮助,请点个赞 谢谢

Excel自动调整分页符,不分断合并单元格

Excel自动调整分页符,不分断合并单元格

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢