Excel VBA:以某种方式告诉打印设置哪一行=第一页结束?
我在电子表格中有两个表(一个在另一个的顶部,由几行分隔),称它们为T1和T2。 T1根据其包含的行数是dynamic的,T2是静态的。 我可以很容易地找出哪一行T1结束,然后加1到左右 – 调用这个variablesT1EndRow。
我想编码它,所以它会知道从第1行到T1EndRow的所有内容都将位于打印预览的第一页。 T2将stream向第二页。
我怎样才能做到这一点?
使用Sheet
对象的HPageBreaks
和VPageBreaks
成员来设置水平和垂直分页符的位置。
例如,如果T1EndRow是要在第1页上显示的最后一行中的命名范围,请转到:
Set ActiveSheet.HPageBreaks(1).Location = ActiveSheet.Range("T1EndRow")
如果T1EndRow是Long
,请尝试:
Set ActiveSheet.HPageBreaks(1).Location = ActiveSheet.Cells(T1EndRow, 1)
奇怪的是,除非你处于xlPageBreakPreview模式,否则Excel会在这一行上抛出错误(这是调整分页符的唯一方法):
ActiveWindow.View = xlPageBreakPreview Set Sheet1.HPageBreaks(1).Location = Sheet1.Cells(58, 1) ActiveWindow.View = xlNormalView
我还注意到,如果您设置的UsedRange
位于表格的UsedRange
之外,则会引发不同的错误,因此您可能需要确保已满足要求。