Excel VBA打印区域中每页上的行数

时间:2018-10-15 10:52:00

标签: excel vba excel-vba count row

是否可以确定每个打印页面上我的打印区域内每个页面上有多少行?由于我的宏中有“自动换行”命令,因此每个页面可容纳的行数不同。我希望宏遍历整个“打印”区域,并在每页上都可以容纳行数。我的打印区域是A1:C111。

我试图对此进行研究,但没有结果:

Sub t()
Dim printRng As Range, lastRow As Long

Set printRng = Range("A1:C111")
ActiveSheet.PageSetup.PrintArea = printRng
lastRow = printRng.Row + printRng.Rows.Count - 1
End Sub

1 个答案:

答案 0 :(得分:1)

您可以使用HPageBreaks获取所有水平分页符。对于每个分页符,您都可以确定行号Location.Row。如果您减去之前的分页符行数,则可以得到每页上的行数。

Option Explicit

Public Sub CountRowsEachPage()
    Dim LastPb As Long
    LastPb = 1 'initialize

    Dim pb As HPageBreak
    For Each pb In Worksheets("Sheet1").HPageBreaks
        Debug.Print pb.Location.Row - LastPb 'shows rows per page on the intermediate window
        LastPb = pb.Location.Row
    Next pb
End Sub