excel - 在Excel 2007中,为什么拖动手动水平分页会导致之前的自动分页变为手动分页?

标签 excel vba

在过去的几天里,我一直在编写一些 Excel 2007 VBA 代码,用于管理复杂工作表中的分页符。经过多次挫折后,我刚刚解决了一个让我发疯的“跳页符”问题,并且我做出了以下发现,这让我想到了一个问题:“为什么?”...

在分页符 View 中,使用鼠标将手动水平分页符进一步向下拖动到工作表中时,会导致之前的自动分页符切换到手动如果向上拖动分页符,则不会发生这种情况;仅当分页符向下拖动时才会发生。

有人可以解释一下其中的机制和原因吗?这看起来非常不直观,给我带来了一些严重的挫败感,直到我不久前才弄清楚。我可以理解移动分页符会影响工作表下方的分页符,但为什么会影响其上方的分页符..?

这里有一些用于设置演示的 VBA。

  1. 运行它。
  2. 拖动手动分页符(第 60 行上方的分页符)。
  3. 什么也没发生。
  4. 然后将其向下拖动。
  5. 工作表上方的自动分页符切换为手动分页符。
  6. 为什么?

如果删除了新切换的手动分页符,则可以重复测试,之后将恢复为自动分页符。然后拖动另一个并观察它再次切换。

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/

相关文章:

vba - 如何使用 VBA 在 Excel 中搜索单词然后删除整行?

VBA 暂停代码并等待用户交互

vba - Excel 如何查找连续的单元格或值?

excel - 在哪里可以找到用于 Internet Explorer 的 VBA 函数

excel - 我怎样才能让我的超链接工作? (Excel,VBA)

vba - 现代版本的 Solidworks 是否仍然支持 RunMacro 方法?

excel - 如何使用 "pagination"单击网络中的某个页面?

vba - 使用 CURRENTREGION 函数通过 VBA 使用现有数据创建表

excel - 如果是错误函数

excel - 是否有一个excel公式可以从单元格中的字符串末尾提取数字,其中长度并不总是恒定的