dynamic分页符

新的论坛。 新的VBA。

我有一张工作表(Sheet1),它访问一个主表。 在Sheet1中,在F1中,有一个下拉菜单,可以让您select从1-27中select一个数字。 Sheet1中的信息根据select的数字而变化。

问题:工作表的大小会随所选的每个数字而改变。 我试图找出一种方法来根据F1中的数字自动设置分页符。

这是我到目前为止,但似乎并没有工作:

Sub PageBreaks() On Error Resume Next ActiveWindow.View = xlPageBreakPreview ActiveSheet.ResetAllPageBreaks If "F1" = 1 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(85) ElseIf "F1" = 2 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(85) ElseIf "F1" = 3 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(87) ElseIf "F1" = 4 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(88) ElseIf "F1" = 5 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(85) ElseIf "F1" = 6 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(85) ElseIf "F1" = 7 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 8 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 9 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 10 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 11 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 12 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 13 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 14 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 15 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 16 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 17 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 18 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 19 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 20 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 21 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 22 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 23 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 24 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 25 Then ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(92) ElseIf "F1" = 26 Then ActiveSheet.HPageBreaks.Add Before:=Rows(59) ElseIf "F1" = 27 Then ActiveSheet.HPageBreaks.Add Before:=Rows(59) End If End Sub 

任何帮助将不胜感激!

尝试下面的代码,我已经添加了一些你的案例(不是所有的案例)。

我想你会尝试添加其余的。 (你的一些案件重叠)。

 Sub PageBreaks() On Error Resume Next ActiveWindow.View = xlPageBreakPreview ActiveSheet.ResetAllPageBreaks Select Case Range("F1").Value Case 1, 2, 5 ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(85) Case 3 ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(87) Case 4 ActiveSheet.HPageBreaks.Add Before:=Rows(43) ActiveSheet.HPageBreaks.Add Before:=Rows(88) ' add here the rest of your cases, some of the overlap 'Case .... End Select End Sub