2013-05-23 2 views
0

Я пытаюсь сделать что-то, что должно быть относительно простым, но я просто не могу заставить его работать правильно, я продолжаю убивать Excel.Цикл через таблицы Excel и приостановка каждого из них

У меня есть рабочая книга с несколькими листами, содержащими данные, точки поворота и диаграммы. Я хочу, чтобы цикл между выбранным количеством листов, которые мне удалось сделать, код ниже, но то, что я пытаюсь достичь, состоит в том, чтобы заставить его остановиться на 10 секунд на каждом листе, прежде чем перейти к следующему листу.

Sub LoopThroughFlaggedSheets() 

Dim StartIndex, EndIndex, LoopIndex, CountIndex As Integer 

StartIndex = Sheets("Dashboard").Index 
EndIndex = Sheets("Sales By Policy Type").Index 
CountIndex = 5 

For CountIndex = 1 To CountIndex 
    For LoopIndex = StartIndex To EndIndex 
     MsgBox Sheets(LoopIndex).Name 

    Next LoopIndex 
Next CountIndex 
End Sub 

Таким образом, в настоящее время петли 5 раз через рабочие листы между Dashboard и продажи по типам политики, то MessageBox только для меня, так что я знаю, что его делать. Мне просто нужно сделать паузу в течение определенного периода времени между каждым листом. Я знаю, что что-то нужно делать в цикле LoopIndex, но я не могу для жизни понять, где и какая команда.

Приветствия

ответ

2

EDIT Попробуйте это:

Sub LoopThroughFlaggedSheets() 

Dim StartIndex, EndIndex, LoopIndex, CountIndex As Integer 

StartIndex = Sheets("Dashboard").Index 
EndIndex = Sheets("Sales By Policy Type").Index 
'CountIndex = 5 

'For CountIndex = 1 To CountIndex 
    For LoopIndex = StartIndex To EndIndex 
     'MsgBox Sheets(LoopIndex).Name 

     Debug.Print Now() 
     Debug.Print Sheets(LoopIndex).Name 

     Application.Wait (Now + TimeValue("00:00:01")) 

     Debug.Print Now() 

    Next LoopIndex 
'Next CountIndex 

End Sub 

Я взял свой внешний CountIndex цикл, чтобы остановить Wait работающих в 25 раз. Я сократил время ожидания до 1 секунды, чтобы показать принцип.

+0

Спасибо за ответ. Я положил это в мой цикл LoopIndex, и он убивает excel, не перемещаясь по листам –

+0

Я отредактировал ответ, чтобы показать код как часть вашего суб. У меня такое ощущение, что ваши две петли оживляют процесс в течение 250 секунд, не показывая никаких признаков того, что что-то происходит. Я вынул внешний цикл, укоротил «Timevalue» и поместил строки 'Debug.Print', чтобы показать прогресс. –

Смежные вопросы