make excel vba wait til операция завершена

Я сделал макрос в vba для spli pdf-файлов на отдельные страницы.

Sub SplitFiles() 'This needs PDFTK installed Dim fso As New FileSystemObject Dim fol As Folder Dim fil As File Dim i As Integer Dim command As String On Error Resume Next Set fol = fso.GetFolder("C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Splitsen\") i = 1 For Each fil In fol.Files command = ("C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & fil & " burst output C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Klaar\Klaar" & i & "-%d.pdf") Shell command i = i + 1 Next fil Application.Wait (Now + TimeValue("0:00:05")) Kill "C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Splitsen\*.pdf" Kill "C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Klaar\*.txt" End Sub 

Проблема в том, что я должен был дать тайм-аут в 5 секунд, иначе файлы сразу же будут удалены, и никакой вывод не будет создан. Как я могу заставить excel ждать, пока все файлы не будут обработаны?

Спасибо Натан, ты поставил меня на правильный путь:

 Sub SplitFiles() 'This needs PDFTK installed Dim fso As New FileSystemObject Dim fol As Folder Dim fil As File Dim i As Integer Dim command As String Dim number As Long On Error Resume Next Set fol = fso.GetFolder("C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Splitsen\") number = fol.Files.Count i = 1 For Each fil In fol.Files command = ("C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & fil & " burst output C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Klaar\Klaar" & i & "-%d.pdf") Shell command If i = number Then Application.Wait (Now + TimeValue("0:00:02")) Kill "C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Splitsen\*.*" Kill "C:\Users\wanne\OneDrive\Documents\Bijberoep\Scans\Klaar\*.txt" Shell ("C:\Program Files (x86)\View and Rename PDF\viewAndRename.exe") Else i = i + 1 End If Next fil End Sub 

Этот код работает, но я должен был объявить переменную как долго, или он застрял бы в цикле.

Все еще тайм-аут в 2 секунды, потому что не все файлы были удалены без задержки (вероятно, потому, что они все еще обрабатывались pdftk)

Interesting Posts

Excel-VBA: проверьте, сколько элементов выбрано в фильтре столбцов (или ограничить выбор)

Поиск макросов в диапазоне ячеек

Как увеличить столбцы с помощью косвенной функции?

Как скопировать столбец из определенной строки вплоть до последней строки со значениями?

Ошибка индекса индекса вне диапазона в прерывании цикла whiloe в python

Низкая производительность VSTO по сравнению с VBA

Рисование сложного числа в Excel

Вызовите макрос динамически, когда значение ячейки изменилось по формуле

Office Addin – программный импорт файла * .exportedUI

c # OleDbDataReader получить значение ячейки не текст

Помещенная кнопка и названная как backspace, при нажатии кнопка должна действовать как фактическое backspace в текстовом поле

Добавьте два столбца в таблицу сводных таблиц Excel

подсчет дубликатов и присвоение метки

Сравните два столбца слов

Как использовать точку с запятой в формуле excel

Давайте будем гением компьютера.