我正在构建一个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
答案 0 :(得分:3)
您当前使用的代码检查下一张工作表的索引是否小于(或等于)工作簿的最后一个索引。如果不是(意味着您已经遍历了所有工作表),那么该应用程序将终止。对于您而言,您不想终止应用程序,因此,如果下一个工作表索引大于最后一个工作表索引,只需手动选择第一个工作表,然后重新启动代码即可。
If nextShtIndex <= lastShtIndex Then
Worksheets(nextShtIndex).Select
StartSlideShow
Else
Worksheets(1).Select
StartSlideShow
End If