В настоящее время у меня есть макрос, который обращается к каталогу и вытаскивает некоторые данные в мою таблицу. Первоначально у меня просто была кнопка для ввода информации и кнопка для удаления всего, но изменения были изменены, и теперь мне нужно ее автоматически запускать макрос, чтобы очистить существующие данные, а затем вытаскивать новые данные каждый час или около того.Excel 2007 VBA, чтобы приостановить макрос
Просматривая различные способы, по которым я могу потенциально приостанавливать макрос, оказывается, что цикл является лучшим способом для меня, потому что он позволит мне по-прежнему взаимодействовать с электронной таблицей во время ожидания.
Все, что сказал, вот что я сейчас имею, что, кажется, просто перебирает все, не останавливаясь ни на что.
В конце моего макроса я использую следующие
Call DelayOneHour
Call RepActiveTicketsDelete
Call DelayTwoSeconds
Call RepActiveTicketsDataGrab
А вот петли
Sub DelayOneHour()
Dim NowTick As Long
Dim EndTick As Long
NowTick = Now
EndTick = Now + TimeValue("0:01:00")
Do Until NowTick >= EndTick
DoEvents
NowTick = Now()
Loop
End Sub
Sub DelayTwoSeconds()
Dim NowTick As Long
Dim EndTick As Long
NowTick = Now
EndTick = Now + TimeValue("0:01:00")
Do Until NowTick >= EndTick
DoEvents
NowTick = Now()
Loop
End Sub
Спасибо за взгляд!
Что вы имеете в виду «никогда не останавливаясь вообще»? Я имею в виду, правильно, технически ничто не приостанавливается, и время выполнения продолжается в течение этого цикла, на один час (или на 2 секунды и т. Д.). Вероятно, это не идеальный вариант, и лучше использовать метод 'Application.OnTime', а это, в основном, способ« запланировать »макрос для запуска в определенное время в будущем. –
Итак, с кодом, который стоит, а не останавливается на минуту между запуском RepActiveTicketsDelete и RepActiveTicketsDataGrab, он просто запускает их назад и вперед примерно на 1-2-секундный интервал. Я не хотел использовать Application.OnTime, потому что это сделает приложение непригодным для использования, пока оно ждет (насколько я мог бы сказать в своем тестировании) – Josh
Я понятия не имею, что вы имеете в виду под «огнем их вперед и назад около 1 -2-й интервал "... Я отправлю ответ, используя метод OnTime, посмотрим, поможет ли это. –