我正在尝试为公司创建月度报告,但在美观方面遇到了麻烦。我有一些表(包含更多数据)看起来像这样:
文本方式如下(如果图片不可用)
客户1-2018-###-#33
客户2-2017-###-###
---------------- 2018-###-###
客户3- 2018-###-### 等等
,但有时客户数据中间会出现分页符,因此标题显示在第一页上,而最后一行显示在新页上。
我正在尝试提出一个代码来检测数据范围是否将被拆分,但是我不能。我以为也许可以用行号预见分页符(这就是我对数据进行分组的方式),但是其中一张纸在行101处有中断(因为此数据从第46行开始),而另一张纸在行上具有分页符106.
我尝试做类似的事情:
If i >= 102 And start.row <= 101 Then
Worksheets(storenumber).HPageBreaks.Add before:=Rows(start.row)
Else
If i >= 176 And start.row <= 166 Then
Worksheets(storenumber).HPageBreaks.Add before:=Rows(start.row)
End If
End If
(随着i =数字和组合的变化),但是我没有取得任何成功。
其他人还有其他想法吗?通常,每张商店编号表只有一个分页符,只有一页除外。 (而且有些工作表不需要分页,因为他们只有5位客户)
我正在寻找更简单的代码(excel初学者/中级),但是我愿意接受任何想法。感谢您的帮助!
答案 0 :(得分:0)
此代码似乎对我有用:
Option Explicit
Sub BreakPagesCleanly()
Dim pb As HPageBreak
Dim rng As Range
Dim i As Long
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.ResetAllPageBreaks
For Each pb In ActiveSheet.HPageBreaks
If pb.Location.Value = "" Then
'go back to the last value
Set rng = pb.Location.End(xlUp)
ActiveSheet.HPageBreaks.Add before:=rng
DoEvents 'Seems to be required to give Excel time to catch up
End If
Next pb
End Sub
以下是之前的视图和之后的视图: