乐于分享
好东西不私藏

从1小时到1分钟:这个WORD VBA代码让批量打印告别手动噩梦

从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只需复制粘贴、按几个按钮,就能让繁琐的操作自动化。如果你也常被重复打印困扰,不妨试试这个方法,或许它会成为你效率提升的关键转折点。


小贴士:由于公众号平台更改了推送规则,如果你不想错过我们的原创分享,记得关注公众号并设为星标⭐。觉得文章有用的话,欢迎转发给需要的同事朋友,点赞在看也是最大的支持!


你在工作中还遇到过哪些让人抓狂的重复性操作?欢迎在评论区留言,也许下一篇文章就是为你定制的解决方案!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 从1小时到1分钟:这个WORD VBA代码让批量打印告别手动噩梦

评论 抢沙发

3 + 9 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮