使Excel选项卡不能打印?

在Excel中是否有任何方法可以使打印整个工作簿时不包含特定的选项卡? 如在,Sheet1,Sheet2和Sheet3打印,但不是Sheet4。

所以就像有人进入文件 – >打印或其他任何东西,然后点击OK等等,除了特定的指定选项卡(我假设我必须“以某种方式隐藏打印”)之外,所有东西都会打印出来。

我把这个训练发给一群人,所以我试图避免强制他们启用/运行macros和所有的东西。 有没有像“排除印刷品”之类的表格属性?

这些答案将需要使用macros。
打印前隐藏纸张。

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 

完成后

另一种select是打印要打印的纸张(如果只打印几张纸,可能会有用:

 Sub Print_Specific_Sheets() Sheets(Array("Sheet1", "Sheet2", "Sheet4")).Select ActiveWindow.SelectedSheets.PrintOut Sheets("Sheet1").Select End Sub 

只要将不想打印的选项卡上的打印区域设置为单个空白单元格,这将意味着它将打印一个空白页面,而不是我假设您试图避免打印的大量数据。

其实答案似乎是令人惊讶的简单。

如果您隐藏纸张,打印整个工作簿时将不会打印。

你不需要一个macros,只是

  1. 右键单击表名称
  2. selecthide

如果需要,您或其他用户也可以取消隐藏。

如果使用BeforePrint事件,则可以改变内置打印function的function。 BeforePrintmacros位于“Workbook”下的“ThisWorkbook”中。

例如,您可以隐藏工作表4,因此不会像这样打印:

 Private Sub aWorkbook_BeforePrint(Cancel As Boolean) Sheets(4).Visible = xlSheetHidden End Sub 

这种方法的缺点是没有AfterPrint方法来取消隐藏工作表。 所以你需要绕开打印对话框。 有几种方法可以做到这一点,但这是一个非常简单的方法。 (注意:如果您需要考虑许多其他打印场景,这可能不是一个好的解决scheme)

在这里,我正在准确告诉打印什么样的纸张(只有纸张1和4)。 您可以使用名称而不是数字,甚至可以创build循环并查找variables以确定要打印的纸张。

 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 

要手动执行此操作,只需通过单击第一个工作表选项卡标签select要打印的所有工作表,然后按住“Shift”键并单击最后一个工作表标签。 (如果您有大量的工作表,请使用小箭头键导航)

如果您需要在中间取消select一个表格,请按住CTRL键并单击该表格。

或者,您可以按住CTRL键并单击每个工作表选项卡标签。

表单颜色将是白色的(在没有活动的表单上有渐变)以显示它们已被选中。

警告:如果select了多个工作表,将会在所有工作表上的相同单元格中重复更改一个工作表。