我不知道如何按顺序打印PDF文件(单元格列表的顺序)。如何使用Excel-VBA按单元格列表的顺序打印PDF文件?
Sub PrintPDFFiles()
zProg = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
zLastRow = [a65536].End(xlUp).Row
temp = "a1:a" & zLastRow
zPrinter = "HP LaserJet Professional M1213nf MFP "
For Each cell In Range(temp)
zFile = cell.Value
If zFile Like "*.pdf" Then
Shell """" & zProg & """/n /h /t""" & zFile & """"
End If
Next
End Sub
研究我迄今所做的:
没有命令行switch,以便打印文件。
更新-1 mycode的后建议:
我用object.run方法在我的代码,我得到错误:
Sub PrintPDFFiles()
zProg = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
zLastRow = [a65536].End(xlUp).Row
temp = "a1:a" & zLastRow
zPrinter = "HP LaserJet Professional M1213nf MFP "
For Each cell In Range(temp)
zFile = cell.Value
If zFile Like "*.pdf" Then
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
zCommand = zProg & " /n /h /t " & Chr(34) & zFile & Chr(34) & " " & zPrinter
wsh.Run zCommand, windowStyle, waitOnReturn
End If
Next
End Sub
错误:
Update-2 My code Afte [R建议:
wsh.Run """Acrobat.exe"" /n /h /t" & Chr(34) & zfile & Chr(34) & " " & zPrinter, , waitOnReturn
问题: 我设法用run方法来打印,但是我有每个文件后关闭Adobe Acrobat Reader软件。我必须打印500多个文件。
你是**壳牌**循环;你确定一个** Shell **在下一个启动之前完成? –
Adobe在打印完成之前保持打开状态吗?如果您尝试将Adobe声明为对象,则打印,Adobe.Quit,然后执行“虽然不是Adobe”。我没有太多操作Adobe的经验,但这是一种可行的方法。 –
请参阅:https://stackoverflow.com/questions/15951837/wait-for-shell-command-to-complete –