Я пытаюсь автоматически отправить на принтер все файлы .pdf из папки.
Вот код, который я пытаюсь
Option Explicit
Declare Function apiShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Public Sub PrintFile(ByVal strPathAndFilename As String)
Call apiShellExecute(Application.hwnd, "print", strPathAndFilename, vbNullString, vbNullString, 0)
End Sub
Sub Test()
Dim filepath As String
Dim currfile As String
Dim wrdApps As Object
Dim wrdDoc As Object
Set wrdApps = CreateObject("Word.Application")
filepath = ActiveWorkbook.Path & "\AIMPRIMER\"
currfile = Dir(filepath & "*.PDF")
Do While currfile <> ""
PrintFile (filepath + currfile)
currfile = Dir()
Loop
End Sub
Do While
Используется для просмотра всех файлов PDF из папки
PrintFile (filepath + currfile)
Необходимо отправить текущий файл на принтер.
Я за исключением этого, чтобы распечатать все .pdf один раз, но на самом деле цикл do while работает не так, как принято, цикл do while работает циклично и никогда не останавливается.
Я попытался: Debug.Print filepath + currfile
здесь я получил один путь ко всем .PDF один раз, но этот путь не отправляется один раз на принтер.
Так что я не понимаю, почему Debug.Print filepath + currfile
работает хорошо, и когда я использую PrintFile (filepath + currfile)
, принтер печатает и никогда не прекращает печать ...