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

时间:2017-05-31 20:30:26

标签: excel vba

我正在尝试编写一个宏,只有在规定的时间后才会在活动工作表之间进行更改。

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

这是我的代码。

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

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:3)

使用工作表的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