修法布施得聪明智慧,多分享让生活更美好。上回分享了《Excel怎样快速批量将相同表式多文件数据修改》,处理多文件数据修改问题,如果是多文件批量打印,那将怎样处理,下面通过一实例分享处理方法。
4Excel怎样快速批量将相同表式多文件数据修改
工具/原料
Microsoft Office Excel 2007
Excel VBA
实例问题
1
一个文件夹里有1000个格式一样的excel表,里面都是sheet1和sheet2两个sheet,全选1000个excel表打印,直接就出来了,但是只需要打印sheet1(sheet2是个大名单,打印完要很多页)……所以有什么好办法, 可以批量操作。(百度知道问题)
END
处理方法/步骤
1
首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样批量打印多个工作簿(文件)的每个表.xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以),根据上次我分享经验《怎样批量提取文件夹下文件名》编制宏【B1输入列举文件名】,如下图。
1怎样批量提取文件夹下文件名
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
3
完成上面两个宏编制,下面是运行宏操作,100个文件2个表全部打印。下面介绍操作步骤:
回到Excel 界面,首先运行【列举文件名】宏,生成文件列表。
在B1单元格复制修改文件的文件夹路径,再点击命令按钮【B1输入列举文件名】,在B3下生成100个文件列表。如下图。
4
然后运行【批量打印文件每个表】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),100个文件每个表全部打印,运行过程如下图。
END
指定表和份数打印
1
如果是指工作表和打印多份,那怎样处理?首先增加一个命令按钮,命名为【E2、E4下填写批量指定表份数打印】(操作方法按我的《怎样批量Excel文件转文本文件》处理),在下面单元格直写内容。
E1 “打印份数”
E3 “打印指定表”
3怎样批量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
3
回到工作表窗口,命令按钮【批量填写修改文件表】引用宏【批量打印文件指定表份数】。
4
操作实例:按上例文件打印份数和和表情况如下:
打印份数填写
E2:2
打印指定表填写
E4:Sheet1
E5:Sheet2
E6:Sheet3
5
操作步骤:1、列举填写修改文件(B1填写,运行宏点 【B1输入列举文件名】),2、填写要填写修改数据E2,E列4行下面,再运行宏,点【批量打印文件指定表份数】,批量打印相应表和份数。
6
如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!
END
注意事项
动态图片要双击成单独大图才能播放全过程。