ExcelVBA一键批量打印文件夹中的所有word文档
==================
【问题】总公司有收到有几百个word文件,每一个都要打印5份,几W个呢!
【常规作法】打开一个~打印~关闭~提示是否保存~否,再来一个……………………,天啊,要重复做到什么时候。
=======================
【目标】一键完成,
【用法】把下面的代码放在一个Excel文件中,一健~选定所有文件~确定
【代码】
========放在Excel文件中批量打印word文件=======
Sub print_word_()
Dim fileToOpen, GetOpenFilename, App,iFile
fileToOpen =Application.GetOpenFilename(filefilter:="Word文档(*.do*),*.do*",FilterIndex:=4, Title:="请选择要处理的文档(可多选)", MultiSelect:=True)
If Not IsArray(fileToOpen) Then
MsgBox "你没有选择文件", vbOKOnly,"提示": Exit Sub
Else
Set App =CreateObject("Word.Application")
For Each iFile In fileToOpen
Set WrdDoc = App.Documents.Open(iFile)
App.Documents(WrdDoc).PrintOut‘些处可设置你要打印的指定页数或份数
App.Documents(WrdDoc).Close False
t = t 1
Next
End If
MsgBox "操作完成!!" & vbCrLf& "打印了 " & t & " 个文件。", vbOKOnly, "提示"
End Sub
=======VBA Printout语法====
表达式.PrintOut(From, To, Copies, Preview,ActivePrinter, PrintToFile, Collate, PrToFileName)
表达式 一个代表 Range 对象的变量。其实指的就是打印的范围了。
参数介绍
下面我们给出Printout的中文语法
打印范围.PrintOut(从哪页开始打, 打到第几页, 打印份数, 打印求是否预览, 打印机名称, 是否打印到文件, 是否打印多个副本,打印到文件的名称)
二、Printout使用举例
A、设置打印第1页到第5页 ActiveWindow.SelectedSheets.PrintOut From:=1, To:=5
B、要打印的3份 Sheets("工作表名称").PrintOut Copies:=3