分享

多个工作簿多个工作表的批量打印

 昵称7781866 2013-02-20
Microsoft Excel是很多办公一族的常用工具,其强大的功能几乎能满足所有有数据处理方面的要求。而其自带的宏命令更是能简化一些数据处理中重复性的工作。 注:application.fileSearch对象只适用EXCEL2003版本。2007以上不支持。
    一次笔者要把一批资料的纸张大小由B4纸调整为A4纸,并在打印时缩放成一页(即一页宽,一页高)。由于资料都是由单独工作簙构成的,对于每一个明细资料,都需要逐个打开工作簙,设置每一张工作表的页面设置,然后再打印,工作量很大。然而笔者利用宏很快便完成了所有的工作。方法如下:
    启动Microsoft Excel,按快捷键“Alt+F11”进入Microsoft Visual Basic编辑器。在编辑器中单击菜单“插入→模块”,在创建的模块中输入以下代码: &#39为乱码,用时删除
Sub printer()
With Application.FileSearch
   .LookIn = \"E:\\财务决算\\变更报表\\\" '设置文件的搜索路径
   .FileType = msoFileTypeExcelWorkbooks '设置要搜索的文件类型为工作簿
   If .Execute > 0 Then '如果找到一个或多个文件
     For i = 1 To .FoundFiles.Count  '设置打开工作簙的循环
      Workbooks.Open Filename:=.FoundFiles(i) '打开找到的每一个工作簙
      For j = 1 To Worksheets.Count '设置逐项选择工作表的循环
       Worksheets(j).Select '选择工作表
       With ActiveSheet.PageSetup '设置当前工作表的页面设置
        .PaperSize = xlPaperA4 '设置纸张大小为A4纸
        .Zoom = False
        .FitToPagesWide = 1 '设置为1页宽
        .FitToPagesTall = 1 '设置为1页高
       End With
      Next j '选择下一张工作表
       ActiveWorkbook.PrintOut '打印整个工作簙
       ActiveWorkbook.Save '保存当前工作簙
       ActiveWorkbook.Close '关闭当前工作簙
     Next i '打开下一个工作簙
   Else
   MsgBox \"没有找到任何工作簿文件\" '提示没有找到任何工作簿文件
   End If
End With
End Sub
输入代码后,按快捷键“F5”运行宏,这时系统就会打开找到的第一个工作簿,并依次设置每一张工作表的纸张大小为A4纸张,缩印成一页宽和一页高,然后再打印整个工作簙,保存并退出,接着依次打开当前目录下的所有工作簿,执行相同的任务。
注意,程序所搜索到的文件仅是当前目录下的工作簿,不包括子目录下的文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    热点新闻
    类似文章 更多