Я делаю макрос, который я хочу сделать следующие вещи:исполнение Pause код, но пусть Excel работать
Открыть файл.
Подождите, пока файл заполняется данными (этот файл использует те же формулы для загрузки данных из внешних баз данных, загрузка занимает около 15 секунд)
- Через 20 секунд проверьте, все загружается, если нет, то ждать дальше 10 секунд (общее ожидание до минуты).
- Если все загружено, архивируйте и закройте файл.
У меня есть проблема останавливает выполнение кода в течение некоторого времени, позволяя формулу обновить себя в то же время - я попытался Application.Wait после прочтения на MSDN, что:
Метод Wait приостанавливает все Microsoft Excel и может помешать вам выполнять другие операции на вашем компьютере, пока действует «Ожидание». Однако фоновые процессы, такие как печать и перерасчет продолжают «
, но это не сработало. - Подождите, остановилась как код и загрузку данных Есть ли способ, чтобы остановить код на некоторое время, но пусть все остальные. Работа Excel продолжается? Я бы хотел, чтобы макрос мог работать полностью без присмотра, так как это возможно, что его нужно будет запустить посреди ночи.
Редактировать: попробовал ответ Сиддарта, и он не работает для меня Код, который я пробовал:
Sub processfile()
Dim bbgwb As Workbook
Dim filepath As String
filepath = "C:\Test\0900CET.xls"
Set bbgwb = Workbooks.Open(filepath)
Wait 60
filepath = "C:\Test\Archive\"
If Len(Dir(filepath)) = 0 Then
MkDir filepath
Else
'Do nothing.
End If
filepath = "C:\Test\Archive\0900.xls"
bbgwb.Worksheets(1).Range("A1:AZ200").Copy
bbgwb.Worksheets(1).Range("A1:AZ200").PasteSpecial xlPasteValuesAndNumberFormats
bbgwb.Worksheets(1).Range("C142").Value = Now
bbgwb.SaveAs Filename:=filepath, FileFormat:=56
bbgwb.Close
ThisWorkbook.Close
End Sub
Private Sub Wait(ByVal nSec As Long)
nSec = nSec + Timer
While nSec > Timer
DoEvents
Wend
End Sub
0900CET.xls имеет формулы w hich, после его открытия, autoupdate с данными (которые я хочу затем хранить и архивировать, поэтому я добавляю в конце специальную часть для копирования/вставки). Я просто проверял открытие 0900CET.xls вручную (все формулы обновляются после 17.3 секунд) и с помощью упомянутой выше (не одну ячейки коды обновляется, прежде чем файл был в архив.
Ожидание нескольких секунд без приостановки работы Excel Попробуйте [это решение] (http://stackoverflow.com/a/17467691/2143262) –