Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel中的VBA宏,用于隐藏所有未选中的工作表_Vba_Excel - Fatal编程技术网

Excel中的VBA宏,用于隐藏所有未选中的工作表

Excel中的VBA宏,用于隐藏所有未选中的工作表,vba,excel,Vba,Excel,我一直在使用下面的VBA宏代码隐藏除活动工作表以外的所有工作表: Sub HideWorksheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name <> ThisWorkbook.ActiveSheet.Name Then ws.Visible = xlSheetHidden End If Nex

我一直在使用下面的VBA宏代码隐藏除活动工作表以外的所有工作表:

    Sub HideWorksheets()
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
            ws.Visible = xlSheetHidden
        End If
    Next ws
End Sub
子隐藏工作表()
将ws设置为工作表
对于此工作簿中的每个ws。工作表
如果ws.Name ThisWorkbook.ActiveSheet.Name,则
ws.Visible=xlSheetHidden
如果结束
下一个ws
端接头

是否有扩展它的选项,以便它将隐藏除选定工作表以外的所有工作表

您需要访问窗口(#)。选择的工作表。一种方法是隐藏除ActiveSheet之外的所有内容,然后取消隐藏选定的内容

Option Explicit

Sub HideWorksheets()
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    ' Hide all except activeone
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ThisWorkbook.ActiveSheet.Name Then ws.Visible = xlSheetHidden
    Next
    ' Unhide selected worksheets
    For Each ws In ThisWorkbook.Windows(1).SelectedSheets
        ws.Visible = xlSheetVisible
    Next ws
    Application.ScreenUpdating = True
End Sub
选项显式
子隐藏工作表()
将ws设置为工作表
Application.ScreenUpdating=False
'隐藏除activeone之外的所有
对于此工作簿中的每个ws。工作表
如果ws.Name ThisWorkbook.ActiveSheet.Name,则ws.Visible=xlSheetHidden
下一个
'取消隐藏选定的工作表
对于此工作簿中的每个ws.Windows(1)。选择的工作表
ws.Visible=xlSheetVisible
下一个ws
Application.ScreenUpdating=True
端接头