使用 VBA 宏仅扩展 Excel 中选定的行

使用 VBA 宏仅扩展 Excel 中选定的行

我编写了以下 VBA 代码,其中包含一个条件,如果 Cell#="Yes" 则展开底行,否则如果 Cell#="No" 则折叠底行。

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E15").Value = "Yes" Then
ActiveSheet.Outline.ShowLevels RowLevels:=3
ElseIf Range("E15").Value = "No" Then
ActiveSheet.Outline.ShowLevels RowLevels:=8
End If
End Sub

现在,这似乎工作正常,没有任何问题,但由于某种原因,它展开和折叠与代码中显示的同一行级别内的所有行,我真正想要的是能够准确选择我想根据条件展开和折叠哪一行。'

正如你所见,我并不是一名 VB 专业人士,但如果能得到任何帮助我都会非常感激。

谢谢!

答案1

如果我理解正确的话,您应该能够设置和取消设置属性ShowDetails以展开和折叠大纲中的特定摘要行。

如下所示,Showdetails是大纲中整行(或整列)的读/写属性。要显示特定摘要行的详细信息,请引用该行中的单个单元格,如下面的示例代码所示。如果您尝试将已展开的摘要级别的属性设置为 True,Excel 将引发错误。如果摘要行由于折叠在较大的分组中而不可见,Showdetails则将(默默地)无法展开该行。

Option Explicit

Sub Worksheet_Change(ByVal Target As Range)
    With ActiveSheet
        If .Range("E15").Value = "Yes" Then
            With .Range("A26").EntireRow
                If .ShowDetail = False Then
                    .ShowDetail = True
                End If
            End With
        ElseIf Range("E15").Value = "No" Then
            With .Range("A45").EntireRow
                If .ShowDetail = False Then
                    .ShowDetail = True
                End If
            End With
        End If
    End With
End Sub

相关内容