如何在编辑文件时使特定单元格(或整个行或列)的内容在Excel中打印,同时在屏幕上保持可见状态?理想情况下,我应该能够对电子表格内部的单元格执行此操作(即,不仅是最右侧的列或底部的行)。隐藏行或列是不可接受的,因为我需要保持单元格大小,以保持工作表的整体外观。
我一直在寻找一种定义条件格式的方法,该条件格式取决于Excel当前是否正在打印,但是似乎没有任何这样的东西。我一直在打印之前将文本颜色手动设置为白色(然后在之后手动将其恢复),但是似乎应该有一种自动的方法。
如何在编辑文件时使特定单元格(或整个行或列)的内容在Excel中打印,同时在屏幕上保持可见状态?理想情况下,我应该能够对电子表格内部的单元格执行此操作(即,不仅是最右侧的列或底部的行)。隐藏行或列是不可接受的,因为我需要保持单元格大小,以保持工作表的整体外观。
我一直在寻找一种定义条件格式的方法,该条件格式取决于Excel当前是否正在打印,但是似乎没有任何这样的东西。我一直在打印之前将文本颜色手动设置为白色(然后在之后手动将其恢复),但是似乎应该有一种自动的方法。
Answers:
您可以应用常规(非条件)格式来实现此目的。选择相关单元格,行和/或列,然后转到“设置单元格格式”,可通过功能区(“主页”→“单元格”→“格式”)或键盘快捷键Ctrl+进行访问1。
在“数字”选项卡上,选择类别=“自定义”,然后为“类型”输入:
“”;“”;“”;“”
或简单地
;;;
如果单元格包含正数,负数,零或(非数字)文本,这将告诉Excel显示一个空字符串。因此,所有不是错误的值都将在屏幕上和打印时隐藏。
如果使用的是Office 2010,则在“文件->打印->页面设置->图纸(选项卡)”下,“打印区域”的设置应为您要的内容。在我的示例中,仅打印A:J列;但是,在屏幕上查看时会显示所有内容。
对话框如下所示:
也可以通过“页面布局”→“页面设置”→(角按钮)→“页面设置”→“页面”进行访问:
此解决方案不需要您在每次需要打印文件之前和之后采取特殊措施。它基于Terence和Don Livezey所建议的使用“打印区域”的思想。将您不想打印的单元格放在打印区域之外。如果这对您足够好,那么您就完成了。
但是,当您编辑工作表时,您可能希望排除的单元格出现在打印区域内。在这种情况下,对于要显示但不打印的每个单元格:
=D15
)
到顶部的公式栏。不要只是键入形状;如果这样做,公式(=D15
)将按字面显示。当我需要做您想说的话时,我会做的是:
在代码编辑器(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
链接:
我通过创建单独的工作表并复制指向其中信息的链接来解决了相同的问题。为此,突出显示整个原始工作表并复制(Ctrl+ C)。转到新工作表,然后右键单击第一个单元格。在“粘贴选项”中选择链接图标。粘贴的所有内容都是未格式化的,因此您必须更正此错误。空单元格将包含零。可以通过以下方法纠正此问题:转到“文件”→“选项”→“高级”,然后取消选中“在具有零值的单元格中显示零”框。
现在,您可以删除不想在打印输出中显示的任何单元格,行或列。当您更新原始图纸时,打印纸将更新。
如果像我一样,有一个要在不同时间段或不同目的复印的基础纸,则可以为该基础纸创建此打印纸。当您需要一对新纸时,只需复制两张纸,新的打印纸将链接到新纸上。
我的信誉得分不足,无法在其他帖子上发表评论,因此我将添加一个包含一些观察结果的“答案”。我有相同或相似的需求,各种方法各有利弊。
设置打印区域:可以根据图纸的布局进行设置,但是不能很好地处理非连续的打印区域选择。或者,也许它处理得很好,但是所选方法对我而言不起作用。例如,如果我有一个带有AE列的电子表格,而我想在打印时隐藏B和D列,则它将每个打印的列{A,C,E}放在单独的页面上。不是我想要的。
将文本设置为白底白字:在某些情况下可以使用,但是请注意,它不能防止隐藏数据泄漏。如果您要隐藏敏感信息,请注意,如果您打印为PDF,数据仍将存在于PDF文件中。即使它是白色的,它仍然存在,并且可以从PDF文件中复制/粘贴。
我更喜欢使用宏在打印时隐藏所选列的方法,尽管我意识到这可能并不适用,也不是在所有情况下的最佳选择。
通过右键单击行/列并选择“隐藏”,可以“隐藏”整个行或列。这将防止打印(或显示)行/列。如果有多个行/列,则可以通过“单击拖动”(如果它们彼此相邻)突出显示它们,或者通过Ctrl+单击(如果它们彼此不相邻)来突出显示它们。隐藏行/列时,不显示其编号/字母。要取消隐藏它们,只需突出显示任一侧的行/列,然后单击“右键”,然后选择“取消隐藏”即可。
除了更改字体颜色外,我不确定是否可以阻止单个单元格打印。您可能可以使用条件格式自动执行此操作。
另一种简单的方法是通过突出显示选定的单元格来临时清除单元格的内容-右键单击并选择“清除内容”。
现在,您可以打印,然后单击“撤消”按钮,一切恢复正常。
考虑到以前的建议,即白色字体可能在PDF打印中可见,我使用以下技术:
在打印区域之外的单元格中输入“ 1”或“ 0”。
然后,我将在不需要打印的所有单元格的条件格式中引用此字段。
如果是,A1=0
则将格式设置为白色字体。
如果是,A1=1
则将格式设置为黑色或所需的任何颜色字体。
第二行可能不是必需的,但也可以让您使用不同的数字来突出显示区域,或者通过在单元格A1中选择一系列数字来突出显示所选背景,边框和字体的单个单元格。