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

时间:2012-10-16 15:34:53

标签: excel vba

我的电子表格中有两个表格(一个在另一个上面,由几行分隔),称之为T1和T2。 T1是动态的,包含多少行,T2是静态的。我可以很容易地找出T1结束的行然后再添加1 - 调用此变量T1EndRow。

我想对它进行编码,因此它会知道从第1行到T1EndRow的所有内容都将出现在打印预览的第一页上。 T2将流向第二页。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用HPageBreaks对象的VPageBreaksSheet成员设置水平和垂直分页符的位置。

例如,如果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

我还注意到,如果您设置的.Location超出工作表的UsedRange,则会引发其他错误,因此您可能需要确保已满足要求。