论坛新手。 VBA新手。
我有一张工作表(Sheet1),可以访问主工作表。 在Sheet1中,在F1中,有一个下拉菜单,您可以选择从1-27中选择一个数字。 Sheet1中的信息根据数字的选择而变化。
问题: 每个选定的数字都会更改工作表的大小。我试图找出一种根据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
任何帮助将不胜感激!
答案 0 :(得分:2)
请尝试以下代码,我已添加了您的一些案例(并非所有案例)。
我想你试着补充其余的。 (你的一些案例重叠)。
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