在过去的几天里,我一直在编写一些 Excel 2007 VBA 代码,用于管理复杂工作表中的分页符。经过多次挫折后,我刚刚解决了一个让我发疯的“跳页符”问题,并且我做出了以下发现,这让我想到了一个问题:“为什么?”......
在分页视图中,使用鼠标拖动manual水平分页符进一步向下移动,它会导致上一个自动的要切换到的分页符manual. 如果拖动分页符,则不会发生这种情况up;仅当拖动分页符时才会发生down.
有人可以解释一下这个的机制和原因吗?这看起来非常不直观,给我带来了一些严重的挫败感,直到我不久前才弄清楚。我可以理解移动分页符会影响工作表下方的分页符,但为什么是上面的分页符呢?
这里有一些用于设置演示的 VBA。
- Run it.
- 将手动分页符向上拖动(第 60 行上方的分页符)。
- 什么都没发生。
- 然后将其向下拉。
- 自动分页进一步切换为手动。
- Why?
如果删除新切换的手动分页符,则可以重复测试,之后将恢复为自动分页符。然后拖动另一个并观察它再次切换。
Public Sub PageBreakTest()
Dim x As Long
Dim y As Long
For y = 1 To 75
For x = 1 To 20
Cells(y, x).Value = Cells(y, x).Address(0, 0)
Next
Next
Rows("60:60").PageBreak = xlPageBreakManual
ActiveWindow.View = xlPageBreakPreview
Range(Cells(1, 1), Cells(75, 30)).Select
ActiveWindow.Zoom = True
Range("A1").Select
End Sub
这是设计使然(也在我的 Excel 2016 中)。
如果向上拖动页面的末尾,您通常希望缩短该页面。如果上一个分页符保持自动,则此方法有效。
如果将其末端的分页符向下拖动,您通常希望扩大该页面上的打印行数。如果上一个分页符保持自动,您会突然有一个页面大小只有一行的附加分页符。为了防止这种情况,之前的中断设置为自动。
垂直分页符也会发生同样的情况:如果将其中一个分页符向左移动(更靠近前一个自动分页符,较小的页面),则前一个分页符将保持自动。如果将其向右移动 1 列,则前一列也会变为手动列。
补充一下:如果您通过添加分页符手动调整页面大小(行数),那么您通常从工作表的第 1 页开始到末尾。在此期间,当前页面下方的所有剩余分页符仍保持自动状态,直到您触摸它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)