Развертывание только выбранных строк в Excel с помощью макросов VBA

Я написал следующий код VBA, который содержит условие, в котором, если ячейка#= "да", разверните нижнюю строку, иначе, если ячейка#=" нет", затем сверните нижнюю строку.

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,но любая помощь была бы очень признательна.

спасибо!

16
задан I AM L
10.12.2022 3:55 Количество просмотров материала 2761
Распечатать страницу

1 ответ

если я правильно понял, вы должны быть в состоянии установить и снять 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
0
отвечен chuff 2022-12-11 11:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

macros
microsoft-excel
microsoft-excel-2007
vba
Вверх