如何防止Excel中的单元格打印
如何防止在Excel中打印特定单元格(或整行或整列)的内容,同时在编辑文件时保持它们在屏幕上可见?理想情况下,我应该能够对电子表格内部的单元格进行这样的操作(即,不仅仅是最右边的一列或最下面的一行)。隐藏行或列是不可接受的,因为我需要保持单元格的大小,以保持工作表的整体外观。
我一直在寻找一种方法来定义一个以Excel当前是否打印为条件的条件格式,但似乎没有这样的东西。我一直在打印前手动将文本颜色设置为白色(之后再手动恢复),但似乎应该有一种自动的方法来实现。
如何防止在Excel中打印特定单元格(或整行或整列)的内容,同时在编辑文件时保持它们在屏幕上可见?理想情况下,我应该能够对电子表格内部的单元格进行这样的操作(即,不仅仅是最右边的一列或最下面的一行)。隐藏行或列是不可接受的,因为我需要保持单元格的大小,以保持工作表的整体外观。
我一直在寻找一种方法来定义一个以Excel当前是否打印为条件的条件格式,但似乎没有这样的东西。我一直在打印前手动将文本颜色设置为白色(之后再手动恢复),但似乎应该有一种自动的方法来实现。
这个解决方案不需要你在每次需要打印文件之前和之后采取特殊的操作. 它建立在使用 “打印区域 "的想法上,正如Terence和Don Livezey所建议的那样. 把你不想打印的单元格放在打印区域之外. 如果这对你来说足够好,你就可以了。
但是,当你编辑工作表时,你可能希望被排除的单元格出现在打印区域内. 在这种情况下,对于每个单元格,你想显示而不是打印。
=D15)将按字面显示。你可以应用正常(不是条件)的格式来实现。选择 问题中的单元格、行和/或列,进入 “单元格格式化",可通过功能区("主页” →"单元格" →"格式化")或键盘快捷键Ctrl+1访问。
在 “数字 "选项卡上,选择 "类别”=“自定义",并为 "类型 "输入。
"";"";"";""
或者干脆输入
;;;
这告诉Excel,如果单元格中包含正数、负数、零或(非数字)文本,则显示一个空字符串。因此,任何不是错误的值都会在屏幕上和打印时被隐藏。
我通过创建一个单独的工作表并复制其中的信息链接来解决同样的问题。要 做到这一点,高亮整个原表并复制它(Ctrl+C)。进入新的工作表,右击第一个单元格。选择 “粘贴选项 "中的链接图标。粘贴的所有内容都将是未格式化的,所以你必须纠正这一点。空单元格将包含零。这可以通过进入 "文件” →"选项" →"高级 “并取消选中 "在有零值的单元格中显示零 "框来纠正。
现在您可以删除任何您不希望出现在打印输出上的单元格、行或列。打印表将在您更新原始表时更新。
如果像我一样,你有一个基础表,你会在不同的时间段或目的下复制,你可以为基础表创建这个打印表。当你需要新的对子时,只需将两张纸都复制下来,新的打印纸就会链接到新的对子上。
当我需要做你所说的事情时,我会做的是。
在代码编辑器(VBA)中使用函数:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
来隐藏行或列,进行打印,然后取消隐藏。
示例:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sheet1" Then
Cancel = True
Application.EnableEvents = False
Application.ScreenUpdating = False
With ActiveSheet
.Rows("10:15").EntireRow.Hidden = True
.PrintOut
.Rows("10:15").EntireRow.Hidden = False
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
或者改变相应的部分来隐藏列(本例隐藏B列和D列):
With ActiveSheet
.Range("B1,D1").EntireColumn.Hidden = True
.PrintOut
.Range("B1,D1").EntireColumn.Hidden = False
End With
或者隐藏所有的行,A列的单元格为空白:
With ActiveSheet
On Error Resume Next
.Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
.PrintOut
.Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
On Error GoTo 0
End With
链接。
我的信誉点不够,无法对其他帖子进行评论,所以我补充一个 “答案",提出一些看法。我也有同样或类似的需求,各种方法都有利弊。
–设置打印区域。这取决于纸张的布局,但它不能很好地处理不连续的打印区域选择。 或者,也许它能很好地处理它。或者,也许它处理得很好,但所选的方法在我的情况下并不适用。例如,如果我有一个有A-E列的电子表格,我想在打印时隐藏B和D列,那么它就会把每个打印的列{A,C,E}放在一个单独的页面上。这并不是我真正想要的。
我更倾向于使用宏来隐藏打印时选择的列,尽管我意识到这并不是所有情况下都适用或最好的选择。
我走过 “清除内容 "的道路,可以说,在忙碌的一天,为了打印而忘记撤销一些东西并不难。
我此后的流程包括:有一个 "工作"(源)选项卡,对任何在我的文件中工作的同事都有一个 "不要碰 "的信息,以及一个 "打印"(目的)选项卡,直接从工作选项卡中抽出,而不用担心清除、隐藏或记得放回。
当我更新源文件时,目标文件会得到它所需要的所有信息,我不会失去我应该更好地备份的几个小时的工作。
另外,备份你的文件,嘿嘿。
干杯
另一个简单的方法是通过高亮选中的单元格来暂时清除单元格的内容–右击并选择 “清除内容"。
现在你可以打印了,然后点击 "撤消 "按钮,一切恢复正常。