使用循环隐藏工作表时保持多张工作表可见

时间:2018-07-12 12:50:53

标签: excel vba excel-vba

当前,我使用以下代码隐藏除一张(在本例中为Sheet4)之外的所有工作表:

Sub LoopHideSheets()
    Dim b As Worksheet
    For Each b In Worksheets
        If b.CodeName <> "Sheet4" Then
            b.Visible = False
        End If
    Next b
End Sub

到目前为止,所有这些都工作正常。


现在,我不仅要保持Sheet4的可见性,而且要保持多张工作表的可见性。因此,我尝试将公式更改为此:

Sub LoopHideSheets()
    Dim b As Worksheet
    For Each b In Worksheets
        If b.CodeName <> "Sheet1" Or _
           b.CodeName <> "Sheet2" Or _
           b.CodeName <> "Sheet3" _
           Then
            b.Visible = False
        End If
    Next b
End Sub

但是,这段代码给了我运行时错误1004。您是否知道我的代码中有错误?

1 个答案:

答案 0 :(得分:1)

Or切换为And,以保持工作表1-3可见。

<>中的a <> b取反,表示它与NOT a = b相同。这会在逻辑上切换OrAnd