Board logo

标题: [问题求助] VBS新手求思路,修改完善批量打印WORD文档 [打印本页]

作者: fonyin    时间: 2022-11-16 10:19     标题: VBS新手求思路,修改完善批量打印WORD文档

结合实际工作需要,搜索了论坛和网上的批量打印文件,就是一次只能指定一种类型,不能换类型,我的代码如下:
  1. Sub 批量打印WORD文档()
  2. Dim fileToOpen, GetOpenFilename, App, iFile
  3. fileToOpen = Application.GetOpenFilename(filefilter:="Word文档类型(*.do*),*.do*", FilterIndex:=4, Title:="请选择要处理的文档(可多选)", MultiSelect:=True)
  4. If Not IsArray(fileToOpen) Then
  5. MsgBox "你没有选择文件", vbOKOnly, "提示": Exit Sub
  6. Else: Set App = CreateObject("Word.Application")
  7. For Each iFile In fileToOpen
  8. Set WrdDoc = App.Documents.Open(iFile)
  9. App.Documents(WrdDoc).PrintOut
  10. App.Documents(WrdDoc).Close False
  11. T = T + 1
  12. Next
  13. End If
  14. MsgBox "操作完成!!" & vbCrLf & "打印了 " & T & " 个文件。", vbOKOnly, "提示"
  15. End Sub
复制代码
我"Word文档类型(*.do*),*.do*"换成, "表格文件类型(*.xl*),*.xl*",类似txt都可以改用

参照网上写法 AllFiles|*.*|(*.exe)|*.exe|(*.TXT)|*.TXT|(*.doc)|*.doc| 也出错

请前辈指导。

类似这个图片的下拉文件类型

作者: pd1    时间: 2022-11-16 14:46

直接改成"Word文档类型(*.*),*.*"
不行吗
作者: fonyin    时间: 2022-11-16 17:36

回复 2# pd1

我上面代码单独一种没问题,但是要实现如图片中的文件类型下拉选择就不知道如何实现。 具体看图片右下角那里
作者: fonyin    时间: 2022-11-16 17:40

就是我目前能单独实现批量打印word、或者批量打印excel、或者批量打印txt;
而我想像上图片右下角那样,比如我这个批量工具是要实现批量打印多个word和多个excel,那么我可以Allfiles,要其他文件类型时可以单独选择,而不是只能单独word,或者excel
作者: czjt1234    时间: 2022-11-16 17:47

【我"Word文档类型(*.do*),*.do*"换成, "表格文件类型(*.xl*),*.xl*",类似txt都可以改用】

既然你会改,那么把这个vbs命名为PrintWord.vbs
再创建一个PrintText.vbs
一个PrintExcel.vbs
不就好了
作者: zaqmlp    时间: 2022-11-16 18:17

  1. fileToOpen = Application.GetOpenFilename(filefilter:="所有文件(*.*), *.*, word文档(*.doc;*.docx), *.doc;*.docx, excel文档(*.xls*), *.xls*, 文本文档(*.txt), *.txt", FilterIndex:=1, Title:="请选择要处理的文档(可多选)", MultiSelect:=True)
复制代码

作者: fonyin    时间: 2022-11-17 16:31

回复 5# czjt1234


    +PDF呢?+PPT呢?  本来用这个就是为了提高效率的,结果还弄那么多出来了
作者: fonyin    时间: 2022-11-17 16:32

回复 6# zaqmlp

nice,完美运行,TKS
作者: 001011    时间: 2023-11-11 17:54

这个代码很OK   但是只能选文件 不能选文件夹     再就是每打印一个 还要输入文件名  这比较麻烦




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2