如何在excel中一键向下钻取数据?

问题描述

我有一张年进度表,其中一列包含 (+) 符号,我想要的是当我点击 (+) 时 从数字 8 到 15 的行将向下钻取数据(显示数据),本例中的 (+) 号将是 (-) 号,然后重新单击 (-) 号以向上钻取数据(隐藏数据)和(-) 又来了 (+)。我希望这个公式适用于整个表格的每一行。注意:我的代码的问题只针对一行完成,但我想要所有,所以是否有任何简单的方法可以为所有行制作。

The Table when rows is Hidden

The Table when rows is Appeared

尝试代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target,Range("O:O")) Is Nothing And Target.Cells.CountLarge = 1 Then

If Range("A8:R15").EntireRow.Hidden = True Then

    Range("A8:R15").EntireRow.Hidden = False

Else
    Range("A8:R15").EntireRow.Hidden = True
End If
End If
End Sub

更新

Screenshot after using the correct Code

解决方法

我在这里使用了双击事件:否则需要单击单元格外并再次返回以反转隐藏/取消隐藏有点尴尬。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,Cancel As Boolean)
    Dim rng As Range
    'exit if not in monitored column
    If Intersect(Target,Me.Range("O:O")) Is Nothing Then Exit Sub
    'check for +/-
    If Target.Value = "+" Or Target.Value = "-" Then
        Set rng = Target.Offset(1,0).Resize(8).EntireRow
        rng.Hidden = Not rng.Hidden
        Target.Value = IIf(rng.Hidden,"+","-") 'reset cell text
        Cancel = True 'don't enter edit mode in the clicked cell
    End If
End Sub

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...