EXCEL用VBA实现当某单元格满足指定条件时,打印指定区域?

比如图中黄色的C4单元格为非空值时,打印B4:O23区域,如空值则不打印。并需要同时设置多个区块执行类似的要求。

第1个回答  2021-08-25
If Cells(4, 3) <> "" Then
ActiveSheet.PageSetup.PrintArea = "$B$4:$O$23"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If追问

感谢,目前可以解决一个区域打印问题,但是如何实现多区域打印呢?也就是表格有多个区域要实现满足非空值则执行打印指定区域的要求?

追答

你直接复制粘贴一堆把单元格改一下不就好了(就加粗的地方有变动)

If [C4] <> "" Then
ActiveSheet.PageSetup.PrintArea = "$B$4:$O$23"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If

If [R4] <> "" Then
ActiveSheet.PageSetup.PrintArea = "$Q$4:$AD$23"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If

If [C25] <> "" Then
ActiveSheet.PageSetup.PrintArea = "$B$25:$O$44"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If

If [R25] <> "" Then
ActiveSheet.PageSetup.PrintArea = "$Q$25:$AD$44"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If

本回答被提问者采纳
第2个回答  2021-08-26
Sub 打印()
If [C4] <> "" Then
Worksheets("Sheet1").PageSetup.PrintArea = "$B$4:$O$23"
Worksheets("Sheet1").PrintOut
End If
End Sub追问

感谢,目前可以解决一个区域打印问题,但是如何实现多区域打印呢?也就是表格有多个区域要实现满足非空值则执行打印指定区域的要求?

追答

多个区域,是依次打印?
就在END IF
前面继续写 其他区域
Worksheets("Sheet1").PageSetup.PrintArea = "$F$4:$Z$23"
Worksheets("Sheet1").PrintOut

相似回答