簡體   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