如何轻松切换 Excel 2010 工作簿中所有工作表的分页符显示?

AMM*_*AMM 3 vba macros microsoft-excel microsoft-excel-2010

Excel 2010 只允许通过文件→选项→高级→“此工作表的显示选项”一次为一个工作表打开或关闭分页符:

在此处输入图片说明

我以前想出了一个 VBA 宏来切换分页符,但它只适用于我有活动的工作表:

Sub TogglePageBreaks()

    ActiveSheet.DisplayPageBreaks = Not ActiveSheet.DisplayPageBreaks

End Sub
Run Code Online (Sandbox Code Playgroud)

下一个合乎逻辑的问题(其他人必须向我指出)是如何使用宏来切换活动工作簿中所有工作表的分页符显示?

作为 VBA 的新手,我花了几个小时研究如何循环工作表以及 DisplayPageBreaks 对象的工作原理。我在下面想出了一个答案。

AMM*_*AMM 5

这是我能想出的。我在 Excel 2010 中成功测试了它。我对 VBA 很陌生,所以我为此苦苦挣扎了一段时间。 ws.Activate是关键,因为DisplayPageBreaks仅适用于活动工作表。感谢RocketDonkey的帖子让我意识到这一点。还要感谢Rick Rothstein,他提出了我在回答中应用的精美简单的切换代码概念。


Sub ToggleWkBkPageBreaks()

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

        ws.Activate

        ActiveSheet.DisplayPageBreaks = True + False - ActiveSheet.DisplayPageBreaks

    Next ws

End Sub
Run Code Online (Sandbox Code Playgroud)