我创建了一个可用于打印PDF文件的宏。 PDF文件将保存在要打印的文件夹中。将为该路径指定保存所有PDF文件的文件夹路径。我的问题是:
1)文件保存在文件夹后,是否可以像先到先打印一样自动排序。现在的问题是 - 打印没有按照文件的顺序排出 - 我们必须协调所有文件,因此以随机列表顺序查找每个文件将花费大量时间。
2)打印完成后是否可以自动从文件夹中删除文件?
Public Sub Print_All_PDF_Files_in_Folder()
Dim folder As String
Dim PDFfilename As String
folder = "\\maple.fg.rbc.com\data\toronto\user_3\315606053\myWorkspace\Desktop\test" 'CHANGE AS REQUIRED
If Right(folder, 1) <> "\" Then folder = folder & "\"
PDFfilename = Dir(folder & "*.pdf", vbNormal)
While Len(PDFfilename) <> 0
If Not PDFfilename Like "*ecg*" Then
Print_PDF folder & PDFfilename
End If
PDFfilename = Dir() ' Get next matching file
Wend
End Sub
Sub Print_PDF(sPDFfile As String)
Shell "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe /p /h " & Chr(34) & sPDFfile & Chr(34), vbNormalFocus
' This is path of Adobe in the desktop
End Sub
答案 0 :(得分:1)
没有构建文件排序的方法。但是,将文件名和-dates读取到数组中并手动对它们进行排序相当容易,但您必须使用FilesystemObject
而不是使用dir
来获取文件日期。
使用VBA删除文件的命令是kill
,或者您可以使用.DeleteFile
的{{1}}方法。但是,这仅在打印已完成时才有效,因此您必须等待shell命令完成。为此,您必须使用FilesystemObject
,例如参见https://stackoverflow.com/a/8906912/7599798