前言
你的工作中是否经常需要打印资料,特别是Excel表格,如果表格是统一格式的,一个工作薄的所有工作表都需要打印,或者所有工作薄的某个相同名称的工作表需要打印,或者只需要打印工作表的选定区域,是否可以通过VBA代码编写程序,按照需求快速打印。
能,也很简单。现在以同一工作薄内所有工作表打印选定区域为例,编写代码。
一、操作思路
1、打开工作表,每张工作表的指定单元格分别添加文字“打印本页请双击”和“打印所有工作表请双击”;
2、编制单元格双击触发事件,指定单元格被双击后,选定预设区域,并打印当前工作表选定区域或当前工作薄所有工作表的选定区域;
3、如需打印多份,可修改代码"PRINT(1,1,1,TRUE,FALSE)"中第二个“1”的数值。
二、效果展示
VBA代码批量打印工作表指定区域
三、代码如下
Private Sub Workbook_Open()
For Each Sheet In Worksheets
Sheet.Cells(20, 9) = "打印本页请双击"
Sheet.Cells(20, 9).Interior.ColorIndex = 44
Sheet.Cells(21, 9) = "打印所有工作表请双击"
Sheet.Cells(21, 9).Interior.ColorIndex = 44
Next
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Target.Row = 20 And Target.Column = 9 Then
Range("A1:G17").Select
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,1,,,TRUE,,FALSE)"
ElseIf Target.Row = 21 And Target.Column = 9 Then
For Each Sheet In Worksheets
Range("A1:G17").Select
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,1,,,TRUE,,FALSE)" '第二个“1”是份数,可以修改该数值
Next
End If
End Sub