Excel-自动工作表切换循环

时间:2019-04-10 16:55:57

标签: excel vba

我正在构建一个Excel电子表格以显示SQL数据图表,这些图表将显示在我们的机械车间的显示器上。电子表格有45个标签,我需要在每个标签之间以10秒的间隔切换电子表格,然后返回到第一个标签并重复循环。

在此站点(How can i change excel sheets with 5sec time gap one after another using VB code by macro?)上类似的问题中,我找到了一个可以满足我需要的宏,但是,我对VBA还是很陌生,不知道如何无限期地循环代码。 / p>

非常感谢您的帮助!

这是链接中的VBA代码(对不起,格式奇怪):




Sub StartSlideShow()
    Application.OnTime Now + TimeValue("00:00:05"), "ShowNextSheet"
End Sub

Sub ShowNextSheet()
    Dim lastIndex As Integer, nextShtIndex As Integer

    lastShtIndex = Worksheets.Count
    nextShtIndex = ActiveSheet.Index + 1

    If nextShtIndex <= lastShtIndex Then
        Worksheets(nextShtIndex).Select
        StartSlideShow
    Else
        MsgBox "End of slide show"
    End If
End Sub

1 个答案:

答案 0 :(得分:3)

您当前使用的代码检查下一张工作表的索引是否小于(或等于)工作簿的最后一个索引。如果不是(意味着您已经遍历了所有工作表),那么该应用程序将终止。对于您而言,您不想终止应用程序,因此,如果下一个工作表索引大于最后一个工作表索引,只需手动选择第一个工作表,然后重新启动代码即可。

If nextShtIndex <= lastShtIndex Then
    Worksheets(nextShtIndex).Select
    StartSlideShow
Else
    Worksheets(1).Select
    StartSlideShow
End If