使用按钮取消隐藏单元格

时间:2019-01-28 17:46:43

标签: excel vba

我希望通过按钮取消隐藏工作簿中某个工作表上的几行单元格(9:18)。

我唯一能在网上找到的东西是如何创建一个可以隐藏和取消隐藏单元格的切换按钮,但我只希望该按钮能够取消隐藏它们。

2 个答案:

答案 0 :(得分:0)

首先,您需要编写一个简短的VB代码来隐藏这些行。下面的示例可能会帮助您入门,但是它旨在切换隐藏的单元格的状态(即,如果当前处于隐藏状态,则它们将变为可见)

Sub HideRows(Row_Range As Variant, Sheet As Variant)
Dim ws As Worksheet

Set ws = Sheets(Sheet)
    'If you do not want a toggle effect, then simply remove this if statement
    If ws.Rows(Row_Range).EntireRow.Hidden = True Then
        Rows(Row_Range).EntireRow.Hidden = False
    Else
        ws.Rows(Row_Range).EntireRow.Hidden = True
    End If

End Sub

将以上内容添加到excel中的VBA模块后,您可以使用以下内容简单地调用它。

Sub Test()

    Call HideRows("12:18", "Sheet1")

End Sub

设置好“呼叫”宏后,您需要将此宏分配给按钮。

答案 1 :(得分:0)

下面是一个基本的宏,它将隐藏/取消隐藏活动表上的这些行。将其放入VBE代码模块后,将此宏分配给按钮。如果您不知道该怎么做,请在youtube上搜索(或在任何您愿意的地方)“ 如何将宏分配给excel按钮。”

Sub HideUnhideSomeRows()

    Dim FirstRowToHide As Long: FirstRowToHide = 9  'update these to change the start row
    Dim LastRowToHide As Long: LastRowToHide = 18   'update these to change the end row

    'using the WITH statement reduces the amount of code needed
    With Range(Rows(FirstRowToHide), Rows(LastRowToHide))

        'this if statement only checks the FirstRowToHide but that should work if they all should be grouped.
        If .Hidden = False Then
            .Hidden = True
        Else
           .Hidden = False
        End If

    End With

End Sub

希望有效。也许在您的下一个问题上发布一些代码或一些屏幕截图。