Excel怎样批量打印多个工作簿(文件)的每个表

文章正文
发布时间:2025-10-17 08:40

修法布施得聪明智慧,多分享让生活更美好。上回分享了《Excel怎样快速批量将相同表式多文件数据修改》,处理多文件数据修改问题,如果是多文件批量打印,那将怎样处理,下面通过一实例分享处理方法。

4Excel怎样快速批量将相同表式多文件数据修改

工具/原料

Microsoft Office Excel 2007

Excel VBA

实例问题

1

一个文件夹里有1000个格式一样的excel表,里面都是sheet1和sheet2两个sheet,全选1000个excel表打印,直接就出来了,但是只需要打印sheet1(sheet2是个大名单,打印完要很多页)……所以有什么好办法, 可以批量操作。(百度知道问题)

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

END

处理方法/步骤

1

首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样批量打印多个工作簿(文件)的每个表.xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以),根据上次我分享经验《怎样批量提取文件夹下文件名》编制宏【B1输入列举文件名】,如下图。

1怎样批量提取文件夹下文件名

Excel怎样批量打印多个工作簿(文件)的每个表

2

按下快捷键ALT+F11打开VBE(宏)编辑器界面,双击模块1,在“列举文件名”代码下面复制下面代码,如图。

Sub 批量打印文件每个表()

'2020-8-15 21:28:01

Dim m$, m1$, i%, r%, myt As Worksheet

m = Range("b1").Text

r = Range("B" & Rows.Count).End(xlUp).Row - 3

If r = 0 Then Exit Sub

On Error Resume Next

Application.ScreenUpdating = False

For i = 1 To r

m1 = Range("b" & i + 3).Text

If m1 <> "" Then

Workbooks.Open m & "\" & m1

For Each myt In ActiveWorkbook.Sheets

myt.Select

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Next myt

ActiveWorkbook.Close SaveChanges:=False

End If

Next i

Application.ScreenUpdating = True

MsgBox "完成"

End Sub

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

3

完成上面两个宏编制,下面是运行宏操作,100个文件2个表全部打印。下面介绍操作步骤:

回到Excel 界面,首先运行【列举文件名】宏,生成文件列表。

在B1单元格复制修改文件的文件夹路径,再点击命令按钮【B1输入列举文件名】,在B3下生成100个文件列表。如下图。

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

4

然后运行【批量打印文件每个表】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),100个文件每个表全部打印,运行过程如下图。

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

END

指定表和份数打印

1

如果是指工作表和打印多份,那怎样处理?首先增加一个命令按钮,命名为【E2、E4下填写批量指定表份数打印】(操作方法按我的《怎样批量Excel文件转文本文件》处理),在下面单元格直写内容。

E1 “打印份数”

E3 “打印指定表”

3怎样批量Excel文件转文本文件

Excel怎样批量打印多个工作簿(文件)的每个表

2

按下快捷键ALT+F11打开VBA(宏)编辑器界面,双击模块1,在【批量打印文件每个表】代码下面复制下面代码,如图。

Sub 批量打印文件指定表份数()

'2020-8-15 22:28:01

Dim m$, m1$, i%, r1%, r2%, n%, j%, k%, myt As Worksheet, mb

m = Range("b1").Text

r1 = Range("B" & Rows.Count).End(xlUp).Row

If r1 = 3 Then Exit Sub

r2 = Range("e" & Rows.Count).End(xlUp).Row

If r2 = 3 Then Exit Sub

mb = Range("e4:e" & r2)

n = Range("e2").Value

On Error Resume Next

Application.ScreenUpdating = False

For i = 4 To r1

m1 = Range("b" & i).Text

If m1 <> "" Then

Workbooks.Open m & "\" & m1

With CreateObject("scripting.dictionary")

For Each myt In ActiveWorkbook.Sheets

.Add myt.Name, i

Next myt

For k = 1 To n

For j = 1 To r2 - 3

If .Exists(mb(j, 1)) Then

ActiveWorkbook.Sheets(mb(j, 1)).Select

ActiveWindow.SelectedSheets.PrintOut Copies:=1

End If

Next j

Next k

ActiveWorkbook.Close SaveChanges:=False

End With

End If

Next i

Application.ScreenUpdating = True

MsgBox "完成"

End Sub

Excel怎样批量打印多个工作簿(文件)的每个表

3

回到工作表窗口,命令按钮【批量填写修改文件表】引用宏【批量打印文件指定表份数】。

Excel怎样批量打印多个工作簿(文件)的每个表

4

操作实例:按上例文件打印份数和和表情况如下:

打印份数填写

E2:2

打印指定表填写

E4:Sheet1

E5:Sheet2

E6:Sheet3

Excel怎样批量打印多个工作簿(文件)的每个表

5

操作步骤:1、列举填写修改文件(B1填写,运行宏点 【B1输入列举文件名】),2、填写要填写修改数据E2,E列4行下面,再运行宏,点【批量打印文件指定表份数】,批量打印相应表和份数。

Excel怎样批量打印多个工作簿(文件)的每个表

Excel怎样批量打印多个工作簿(文件)的每个表

6

如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!

END

注意事项

动态图片要双击成单独大图才能播放全过程。