0

我正在尝试做一些应该相对简单的事情,但我无法让它正常工作,我一直在杀死 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 次,消息框仅供我使用,所以我知道它在做什么。我只需要它在每张纸之间的任何指定时间段内暂停。我知道需要在 LoopIndex 循环中执行某些操作,但我终其一生都无法弄清楚在哪里以及使用哪个命令。

干杯

4

1 回答 1

2

编辑试试这个:

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 秒以显示原理。

于 2013-05-23T14:22:48.007 回答