使自动分页符忽略Excel中VBA中的拆分单元格

使自动分页符忽略Excel中VBA中的拆分单元格,vba,excel,Vba,Excel,是否可以在Excel 2007中的VBA中生成自动分页符,忽略拆分单元格(合并相邻单元格后) 例如,在下面的示例中,我希望分页符位于第51行上方,而不是穿过合并单元格A51-A53的中间 我尝试过的代码是: workSheet.Range("A2:A" & bottomRow).PageBreak = xlPageBreakAutomatic 通过只在范围中包含列A,我希望它不会生成一个分页符来剪切该列中的单元格。试试这段代码 Sub HPageBreaks_and_MergeCel

是否可以在Excel 2007中的VBA中生成自动分页符,忽略拆分单元格(合并相邻单元格后)

例如,在下面的示例中,我希望分页符位于第51行上方,而不是穿过合并单元格A51-A53的中间

我尝试过的代码是:

workSheet.Range("A2:A" & bottomRow).PageBreak = xlPageBreakAutomatic
通过只在范围中包含列A,我希望它不会生成一个分页符来剪切该列中的单元格。

试试这段代码

Sub HPageBreaks_and_MergeCells()
Dim sh As Worksheet
Dim NextPageBreakNumber As Long
Dim PageBreakFirstLine  As Object
Dim LineNumber As Long
Set sh = ThisWorkbook.ActiveSheet
ActiveWindow.View = xlPageBreakPreview
sh.ResetAllPageBreaks
NextPageBreakNumber = 1
While NextPageBreakNumber <= sh.HPageBreaks.Count
    Set PageBreakFirstLine = sh.HPageBreaks(NextPageBreakNumber).Location
    LineNumber = PageBreakFirstLine.Row
    If sh.Cells(LineNumber, 1).MergeCells = True Then
        Set sh.HPageBreaks(NextPageBreakNumber).Location = sh.Cells(sh.Cells(LineNumber, 1).MergeArea.Row, 1)
    End If
    NextPageBreakNumber = NextPageBreakNumber + 1
Wend
ActiveWindow.View = xlNormalView
End Sub
Sub-HPageBreaks\u和\u MergeCells()
将sh设置为工作表
Dim NextPageBreakNumber尽可能长
Dim PageBreakFirstLine作为对象
变暗行号,长度相同
设置sh=thiswoolk.ActiveSheet
ActiveWindow.View=xlPageBreakPreview
重置所有分页符
NextPageBreakNumber=1
而NextPageBreakNumber