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 [基于单元格内容的打印]。