Excel中是否有任何方法可以使打印整个工作簿时不包含特定选项卡?如中,Sheet1、Sheet2 和 Sheet3 打印,但不打印 Sheet4。
所以就像有人去文件 - > 打印或其他什么,然后点击确定等,除了特定的指定选项卡(我假设我必须以某种方式“隐藏打印”)之外的所有内容都会打印出来。
我将这个锻炼发送给一群人,所以我试图避免强迫他们启用/运行宏和所有这些东西。是否只有“从打印中排除”之类的工作表的属性?
Excel中是否有任何方法可以使打印整个工作簿时不包含特定选项卡?如中,Sheet1、Sheet2 和 Sheet3 打印,但不打印 Sheet4。
所以就像有人去文件 - > 打印或其他什么,然后点击确定等,除了特定的指定选项卡(我假设我必须以某种方式“隐藏打印”)之外的所有内容都会打印出来。
我将这个锻炼发送给一群人,所以我试图避免强迫他们启用/运行宏和所有这些东西。是否只有“从打印中排除”之类的工作表的属性?
这些答案将需要使用宏。
打印前隐藏纸张。
sheets("WorksheetToNotPrint").visible = xlSheetHidden 'or 0
或者
sheets("WorksheetToNotPrint").visible = xlSheetVeryHidden 'or 2
'used if you don't want people to unhide the worksheet without knowing code
和
sheets("WorksheetToNotPrint").visible = xlSheetVisible 'or -1
完成后
另一种选择是打印您想要打印的纸张(如果您只想打印几张纸,这可能很有用:
Sub Print_Specific_Sheets()
Sheets(Array("Sheet1", "Sheet2", "Sheet4")).Select
ActiveWindow.SelectedSheets.PrintOut
Sheets("Sheet1").Select
End Sub
如果您使用该BeforePrint
事件,那么您可以更改内置打印功能可以执行的操作。该BeforePrint
宏位于“工作簿”下的“ThisWorkbook”内。
例如,您可以隐藏工作表 4,使其不会像这样打印:
Private Sub aWorkbook_BeforePrint(Cancel As Boolean)
Sheets(4).Visible = xlSheetHidden
End Sub
这种方法的缺点是没有AfterPrint
方法可以取消隐藏工作表。所以你需要绕过打印对话框。有几种方法可以做到这一点,但这是一种非常简单的方法。(注意:如果您有许多其他需要考虑的打印场景,这可能不是一个好的解决方案)
在这里,我准确地说明要打印哪些表(仅表 1 和 4)。您可以使用名称而不是数字,甚至可以创建一个循环并查找变量以确定要打印的工作表。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Sheets(Array("1", "4")).PrintOut , , 1
Application.EnableEvents = True
'//prevent the default print
Cancel = True
End Sub
其实答案似乎出奇的简单。
如果隐藏工作表,则在打印整个工作簿时不会打印它。
你不需要宏,只需要
hide
如果需要,您或其他用户也可以取消隐藏它。
只需将您不想打印的选项卡上的打印区域设置为单个空白单元格,这意味着它将打印一个空白页,而不是我认为您试图避免打印的大量数据。
If you do not want to use VBA or hide the sheet, you could just set print area on an empty cell of the sheet you do not want to print.
The tab will still be printed but the result will be an empty sheet.
要手动执行此操作,只需通过单击第一个工作表选项卡标签选择要打印的所有工作表,然后按住“Shift”键并单击最后一个工作表选项卡标签。(如果您有大量工作表,请使用小箭头键进行导航)
如果您需要取消选择中间的工作表,请按住 CTRL 键并单击该工作表。
或者,您可以按住 CTRL 键并单击每个工作表选项卡标签。
工作表颜色将为白色(在非活动工作表上带有渐变)以表明它们已被选中。
警告:选择多个纸牌时,所有更改都会在所有元单元中重复。
只需将此行放在一个新的宏中,然后替换要打印的工作表的名称:
Sheets(Array("Name_of_Sheet_1", "Name_of_Sheet_2")).Select
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
为什么所有疯狂的编码?
只需单击要打印的第一个选项卡并使其处于活动状态。然后按住控件,然后单击要打印的每个附加选项卡,不包括选项卡或您不想打印的选项卡。然后像往常一样转到“文件”,然后“打印”。确保选择“打印活动工作表”,然后打印。
它只打印您选择的选项卡。简单,无需将事情复杂化到可笑的不必要的愚蠢程度。