基于单元格内容打印(Microsoft Excel)
Theresa想知道是否有一种格式化单元格的方法,以便如果该单元格的内容满足特定条件,那么将自动打印特定的工作表。简短的答案是“否”,没有办法使用格式化来实现此目标。但是,您可以使用事件处理程序宏进行打印。
例如,每次更改工作簿中的内容时,都会触发Excel支持的事件处理程序之一。您可以创建一个事件处理程序,以检查更改了哪个单元。如果它是一个特定的单元格,并且该单元格包含一个特定的值,则可以打印工作表。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "B2" Then If Target.Value = 1001 Then Worksheets(1).PrintOut End If End If End Sub
该宏检查哪个单元已更改。如果它是单元格B2,并且该单元格包含值1001,则工作表将自动打印。
当然,您可能希望特定单元格的内容控制当某人实际选择打印时要打印的内容。例如,如果用户选择打印,则您可能需要检查单元格(例如E2)的内容,并根据该单元格的内容自动修改要打印的内容。下面的宏采用这种方法:
Private Sub Workbook_BeforePrint(Cancel As Boolean) Application.EnableEvents = False Select Case Worksheets("Sheet1").Range("E1") Case 1 Worksheets("Sheet1").PrintOut Case 2 Worksheets("Sheet2").PrintOut Case 3 Worksheets("Sheet3").PrintOut Case 4 Worksheets("Sheet4").PrintOut Case Else ActiveSheet.PrintOut End Select Cancel = True Application.EnableEvents = True End Sub
宏将打印Sheet1,Sheet2,Sheet3或Sheet4,具体取决于单元格E2是否包含1、2、3或4。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(11578)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Printing_Based_on_Cell_Contents [基于单元格内容的打印]。