微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel vba 实例(7)-一键批量打印工作簿

Excel VBA 实例 永恒君 4908℃ 0评论

后台最近有朋友留言说,经常会有好多excel工作簿要打印,挨个点击打开,然后选择打印非常的麻烦。有没有办法可以用vba一键批量的打印?


当然可以,其实方法有两种:

1    直接通过VBA代码一键批量打印 

举个栗子更直观一些,如下图

book1工作簿下有a、b、c三个工作表

book2工作簿下有sheet1、sheet2、sheet3三个工作表

将这两个文件放在同一个文件夹内,再新建一个excel文件,叫“一键批量打印”。

然后VBE中(开发工具-Visual Basic),输入下面的代码,保存运行即可。



Sub 打印指定文件()

    Dim iPath$, iName$, Wb As Workbook

    Dim i

    iPath = ThisWorkbook.Path & "\"

    iName = Dir(iPath & "*.xls*")

    On Error Resume Next

    Do While iName <> ""

        If iName <> ThisWorkbook.Name Then

            Set Wb = Workbooks.Open(iPath & iName)

                For i = 1 To Wb.Worksheets.Count

                Wb.Worksheets(i).PrintOut

                Next

            Wb.Close False

        End If

        iName = Dir

    Loop

End Sub




看效果,因为永恒君电脑没有连接打印机,用的是虚拟打印机,模拟打印成pdf格式的文档了,和打印机打印的原理是一样的。



这里有一点是要注意的,打印的表格的排版要事先调好,代码并没有设置格式,都是按表格原有的排版进行打印。


2    把所有工作簿批量合并后再打印


这个方法要用到之前介绍的合并工作簿的方法:Excel vba 实例(3) - 多个工作簿批量合并

把所有的工作簿的表格全部合并到一起,再打印整张工作簿即可。如下图演示:

这个变通的办法也是不错的。


同样的,永恒君直接把上面实例VBA的文件分享出来,需要的就直接使用吧。


后台回复“打印”即可。



不少人对VBA代码有抵触心理,其实没有那么复杂,把他看成一个稍微复杂点的函数即可。


当然如果并不打算深入学习VBA,只是临时使用下,那只要会复制黏贴就好了!


至于怎么用VBA代码,可以参考之前的文章:


Excel vba 实例(1) - 批量制作工资表头

Excel vba 实例(2) - 批量将工作表拆分为单独文件

Excel vba 实例(3) - 多个工作簿批量合并

Excel vba 实例(4) - 根据已有名称,批量新建表格

Excel vba 实例(5) - 快速合并n多个相同值的单元格

Excel vba 实例(6) - 一键汇总多个sheet数据到总表



Excel VBA功能很强大,但是要熟练的运用起来还是有一定的难度,好在永恒君帮大家搜集了几套关于VBA的视频教程,非常的实用。


需要的话,后台回复“VBA”获取吧~~



欢迎交流!


微信公众号:永恒君的百宝箱

个人博客:www.yhjbox.com

转载请注明:永恒君的百宝箱 » Excel vba 实例(7)-一键批量打印工作簿

喜欢 (18)
发表我的评论
取消评论
表情
(2)个小伙伴在吐槽
  1. 打印
    匿名2019-10-20 10:11 回复
    • 需要在微信公众号“永恒君的百宝箱”里回复
      永恒君2019-10-21 09:14 回复