使用VBA仅在活动工作表之间切换

我正在尝试编写一个只在规定时间之后才能在活动工作表之间更改的macros。

我有几个隐藏的工作表,目前,这段代码将把我循环到最后一个可见工作表,然后在那个工作表上暂停相同的时间,以便循环隐藏工作表。 所以我最后看了我最后一张可见的纸张,比其他纸张长好几倍。

这是我的代码。

Public Sub Switch() Dim ws As Worksheet Do For Each ws In ThisWorkbook.Worksheets ws.Activate Application.Wait Now() + TimeValue("00:00:05") DoEvents Next ws Loop End Sub 

任何帮助将是惊人的!

使用工作表的Visible性属性:

 Public Sub Switch() Dim ws As Worksheet Do For Each ws In ThisWorkbook.Worksheets If ws.Visible = xlSheetVisible Then 'Only process things if the sheet is visible ws.Activate Application.Wait Now() + TimeValue("00:00:05") DoEvents End If Next ws Loop End Sub