Я написал следующий код 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 Pro, но любая помощь будет высоко ценится.

Спасибо!

1 ответ1

0

Если я вас правильно понимаю, у вас должна быть возможность устанавливать и снимать свойство ShowDetails чтобы развернуть и свернуть определенные итоговые строки в схеме.

Как показано ниже, Showdetails - это свойство чтения / записи всей строки (или столбца) в схеме. Чтобы показать подробности для конкретной итоговой строки, укажите ссылку на одну ячейку в этой строке, как показано в примере кода ниже. Excel выдает ошибку, если вы попытаетесь установить для свойства значение True для уровня сводки, который уже раскрыт. Если итоговая строка не видна, поскольку она свернута в более крупную группу, 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .