VBA隐藏一张名为“Summery”的工作表中列出的特定工作表

时间:2014-08-11 05:28:25

标签: excel-vba vba excel

我试过基于以下代码。它在下面提到。实际上我想要隐藏一个特定的表单列表,这些表单在一个名为" Summery"从范围(7,8)到(40,8)。以下是代码:

Private Sub ToggleButton2_Click()
    Dim sheet As Worksheet
    rc = 40
    For r = 7 To rc
        sheet = Sheet37.Cells(r, 8)
        Sheet.Visible = xlSheetHidden
    Next
End Sub

但它没有用。请帮忙。

2 个答案:

答案 0 :(得分:0)

而不是

sheet = Sheet37.Cells(r, 8)

使用

Set sheet = Worksheets(Sheet37.Cells(r, 8))

如果列出的工作表名称不存在,您还应考虑添加错误处理

答案 1 :(得分:0)

由于您使用切换按钮,我假设您想在第二次点击时取消隐藏它?所以也许试试这个:

Private Sub ToggleButton1_Click()
    Dim sh As Worksheet, ws As Worksheet
    Dim shList As Variant

    Set ws = ThisWorkbook.Sheets("Summery")
    shList = Application.Transpose(ws.Range("H7:H40"))

    For Each sh In ThisWorkbook.Sheets
        If Not IsError(Application.Match(sh.Name, shList, 0)) Then
            sh.Visible = Not sh.Visible
        End If
    Next
End Sub