用户在Excel工作表中插入了大量数据。我创建了一个用于拉链的命令按钮。由于数据将来会被用户添加,所以我无法设置分页符。我希望分页能够处于合适的位置。
例如上面的图片,我不想在不同的页面中打印数据组。如果没有足够的空间将data3打印在与数据和数据2相同的工作表上,则分页会自动将data3调整为新页面。
这是我的代码
Sub pagebreak()
Application.ScreenUpdating = False
Dim lastrow As Long, rngTemp As Range
lastrow = Sheet2.Range("E1").Offset(Rows.count - 1).End(xlUp).Row
Set rngTemp = Sheet2.Range("E11")
Do While rngTemp.Row <> lastrow
Set rngTemp = Sheet2.Range("E11", rngTemp.Offset(75)).Find(What <> vbNull, SearchDirection:=xlPrevious)
rngTemp.Parent.HPageBreaks.Add Before:=rngTemp.Offset(1, -7)
Loop
Application.ScreenUpdating = True
End Sub
根据上面的代码,我将把75行的最大数据放在一个页面中。为了避免不正确的分页,我将检查分离部分(空白灰色行),我已经在侧面放置了一些关键字(测试非空白)。但是这段代码不起作用。有人可以帮忙修复代码吗?
答案 0 :(得分:0)
从第75行循环并查找空单元格(灰色单元格)。
Sub PBs()
Dim x As Integer
For x = 75 To 1 Step -1 ' loop backwards from row 75 to find the first empty cell
If IsEmpty(Cells(x, 1)) Then
ActiveSheet.HPageBreaks.Add Cells(x, 1)
Exit For
End If
Next x
End Sub
你提到工作表应该总是75行,如果不是这种情况(例如用户增加了行的大小),你必须根据我的评论来测量每行的高度。