美文网首页
Excel vba 实例(7)-一键批量打印工作簿

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

作者: 永恒君的百宝箱 | 来源:发表于2018-07-20 13:42 被阅读555次

    后台最近有朋友留言说,经常会有好多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”获取吧~~

    欢迎交流!

    相关文章

      网友评论

          本文标题:Excel vba 实例(7)-一键批量打印工作簿

          本文链接:https://www.haomeiwen.com/subject/lxofmftx.html