繁体   English   中英

隐藏Excel VBA中的非活动工作表

[英]Hide non-active worksheets in Excel VBA

我在Excel 2013中有一个UserForm,可以在操作之前清除用户的Excel页面。 公共模块具有以下VBA代码:

Sub ShowForm()
    With ActiveWorkbook
        .Worksheets("Sheet1").Activate
        .Worksheets("Sheet2").Visible = False 'Hide didn't work
        .Worksheets("Sheet3").Visible = False 'Hide didn't work
    End With

    UserForm1.Show
End Sub

如何隐藏工作表2和3并激活或使工作表1可见? 代码应该模仿右键单击选项卡并选择“隐藏”。 上面的代码抛出Run-time error '9': Subscript out of range

看起来你隐藏了除活动表之外的所有内容。 试试这段代码 - 它不依赖于工作表名称。

Sub Test()

    SheetVisibility 'Hide all except active sheet.

    MsgBox "All except `" & ActiveSheet.Name & "` hidden."

    SheetVisibility True 'Unhide all sheets.

End Sub

Sub SheetVisibility(Optional ShowAll As Boolean = False)

    Dim wrkSht As Worksheet

    For Each wrkSht In ThisWorkbook.Worksheets
        If wrkSht.Name <> ActiveSheet.Name Then
            wrkSht.Visible = IIf(ShowAll, xlSheetVisible, xlSheetHidden)
        End If
    Next wrkSht

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM