ExcelVBA一键批量打印文件夹中的所有word文档

2022-10-25 11:12:16 浏览数 (1)

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

vba

0 人点赞