在过去的几天里,我一直在编写一些 Excel 2007 VBA 代码,用于管理复杂工作表中的分页符。经过多次挫折后,我刚刚解决了一个让我发疯的“跳页符”问题,并且我做出了以下发现,这让我想到了一个问题:“为什么?”...
在分页符 View 中,使用鼠标将手动水平分页符进一步向下拖动到工作表中时,会导致之前的自动分页符切换到手动。 如果向上拖动分页符,则不会发生这种情况;仅当分页符向下拖动时才会发生。
有人可以解释一下其中的机制和原因吗?这看起来非常不直观,给我带来了一些严重的挫败感,直到我不久前才弄清楚。我可以理解移动分页符会影响工作表下方的分页符,但为什么会影响其上方的分页符..?
这里有一些用于设置演示的 VBA。
- 运行它。
- 拖动手动分页符(第 60 行上方的分页符)。
- 什么也没发生。
- 然后将其向下拖动。
- 工作表上方的自动分页符切换为手动分页符。
- 为什么?
如果删除了新切换的手动分页符,则可以重复测试,之后将恢复为自动分页符。然后拖动另一个并观察它再次切换。
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 页开始到末尾。在此期间,当前页面下方的所有剩余分页符仍保持自动状态,直到您触摸它们。
关于excel - 在Excel 2007中,为什么拖动手动水平分页会导致之前的自动分页变为手动分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082840/