从1小时到1分钟:这个WORD VBA代码让批量打印告别手动噩梦
从1小时到1分钟:这个WORD VBA代码让批量打印告别手动噩梦
月底汇总报表、批量打印合同、准备会议资料……这些场景在职场中再常见不过。你是否有过这样的经历:面对着几十甚至上百个Word文档,一个一个打开、点击打印、输入份数、关闭,然后再重复同样的动作。一整套操作下来,手指酸痛不说,还容易出错——打错份数、选错打印机、中途卡纸后不知从何继续。明明可以高效完成的工作,却被这种机械重复拖慢了节奏。
有位朋友曾吐槽,一次要打印200多份合同,每份5页,他和同事轮流守在打印机前,整整折腾了一下午才完成。更崩溃的是,中途打错了好几份,看着那堆废纸,心里满是无奈:难道就没有更聪明的办法吗?
今天分享了一段VBA代码,彻底解决了这个难题。其实,Word里早就内置了VBA(Visual Basic for Applications)这个“遥控器”,你只需提前设定好指令,电脑就能自动完成批量打印:选定一个文件夹,设定打印份数,Word便会自动打开里面所有文档,打印,关闭,一气呵成。如果遇到损坏或被占用的文件,代码还会自动跳过并记录下来,最后告诉你哪些文件出了问题,再也不用担心打印中途卡壳却找不到原因。
Sub BatchPrintWordDocs() Dim folderPicker As FileDialog, folderPath As String, fileName As String Dim doc As Document, successCount As Integer, copies As Long Dim failedFiles As String Set folderPicker = Application.FileDialog(msoFileDialogFolderPicker) With folderPicker .Title = "请选择包含要打印文档的文件夹" .Show End With If folderPicker.SelectedItems.Count <= 0 Then Exit Sub folderPath = folderPicker.SelectedItems(1) If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" copies = InputBox("请输入要打印的份数?", "批量打印脚本", 1) If copies <= 0 Then Exit Sub fileName = Dir(folderPath & "*.doc*") Do While fileName <> "" On Error Resume Next ' 临时忽略错误,以便捕获打开异常 Set doc = Documents.Open(folderPath & fileName) If Err.Number <> 0 Then ' 打开失败,记录文件名 failedFiles = failedFiles & fileName & vbCrLf Err.Clear Else ' 打开成功,执行打印 doc.PrintOut , , , , , , , copies doc.Close False successCount = successCount + 1 End If On Error GoTo 0 ' 恢复默认错误处理,避免影响后续 Set doc = Nothing fileName = Dir() Loop Set folderPicker = Nothing If failedFiles = "" Then MsgBox "已完成!共打印了 " & successCount & " 个文件,各 " & copies & " 份。" Else MsgBox "打印完成,但有 " & (Len(failedFiles) - Len(Replace(failedFiles, vbCrLf, ""))) / 2 & " 个文件打开失败:" & vbCrLf & failedFiles, vbExclamation End IfEnd Sub
用上这段代码,效率的提升立竿见影:
-
• 之前:打开文件夹 → 双击文件 → 等待加载 → 按Ctrl+P → 输入份数 → 打印 → 关闭 → 重复几十上百次 -
• 现在:运行代码 → 选择文件夹 → 输入份数 → 起身倒杯咖啡 → 回来所有文件已打印完毕
时间从几小时压缩到几分钟,而且完全零失误。更重要的是,人们可以解放出来,把精力投入到更有价值的工作中。
很多人一听到“代码”两个字就下意识退缩,但真正好用的工具往往不需要成为程序员才能驾驭。就像开车不用懂发动机原理一样,用VBA只需复制粘贴、按几个按钮,就能让繁琐的操作自动化。如果你也常被重复打印困扰,不妨试试这个方法,或许它会成为你效率提升的关键转折点。
小贴士:由于公众号平台更改了推送规则,如果你不想错过我们的原创分享,记得关注公众号并设为星标⭐。觉得文章有用的话,欢迎转发给需要的同事朋友,点赞和在看也是最大的支持!
你在工作中还遇到过哪些让人抓狂的重复性操作?欢迎在评论区留言,也许下一篇文章就是为你定制的解决方案!
夜雨聆风
