打印区域每页的行数

101*_*101 3 excel vba row count

有什么方法可以确定每个打印页面的打印区域内每页有多少行?由于我的宏中的“文本换行”命令,每个页面可以容纳不同数量的行。我希望宏能够遍历整个打印区域,并且可以在每页上安装计数行。我的打印区域是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
Run Code Online (Sandbox Code Playgroud)

Pᴇʜ*_*Pᴇʜ 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)