Excel VBA:以某种方式告诉打印设置哪一行=第一页结束?

我在电子表格中有两个表(一个在另一个的顶部,由几行分隔),称它们为T1和T2。 T1根据其包含的行数是dynamic的,T2是静态的。 我可以很容易地找出哪一行T1结束,然后加1到左右 – 调用这个variablesT1EndRow。

我想编码它,所以它会知道从第1行到T1EndRow的所有内容都将位于打印预览的第一页。 T2将stream向第二页。

我怎样才能做到这一点?

使用Sheet对象的HPageBreaksVPageBreaks成员来设置水平和垂直分页符的位置。

例如,如果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之外,则会引发不同的错误,因此您可能需要确保已满足要求。