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