Страницы: 1
RSS
Как в таблице показать первую скрытую строку
 
Всем привет. Помогите написать макрос. Вообщем имеется таблица она занимает ячейки "A1:J33", но таблиц может быть больше и располагаться могут и с "A123:J156", т.е в разных местах вниз, в этих таблицах например "A1:J33" имеются объединенные ячейки с "A1:A33", и в этих таблицах есть скрытые строки. Нужно, чтобы я мог встать на эти объединенные ячейки, запустить макрос и он мне показал бы первую скрытую строку. Например я встаю на таблицу на ячейки "A315:A348" в этой таблице имеется скрытые строки A332:A348, запускаю макрос и он мне показывает первую скрытую строку, т.е A332. Таблицы могут располагаться в разных местах, но начинаться будут со столбца "A", количество скрытых строк может быть разное.
 
Привет.
Почему пример не соответствует описанной задаче?
Изменено: Hugo - 02.08.2020 23:30:44
 
Ничего не понял, но может так?

Код
Sub Макрос1()
Dim Rng As Range, rCell As Range, rCell2 As Range

    Set Rng = ActiveCell '.CurrentRegion
    For Each rCell In Rng
        If rCell.MergeCells Then
            If rCell.MergeArea.Rows.Count > 1 Then
                Set MergedArea = Range(rCell.MergeArea.Address)
                For Each rCell2 In MergedArea.Rows
                    If rCell2.EntireRow.Hidden = True Then
                        MsgBox "Строка " & rCell2.Row & " скрыта"
                        Exit For
                    End If
                Next rCell2
            End If
        End If
    Next rCell
End Sub
Изменено: New - 02.08.2020 23:31:42
 
Цитата
New написал: может так?
Да почти так, только у Вас выходит сообщение какая строка скрыта, а нужно, чтобы он эту строку делал видимой, ну то есть раскрыл.
 
Ну, я так понял вот эту вашу фразу "запускаю макрос и он мне показывает первую скрытую строку, т.е A332."
Вот исправил
P.S. А я думал мы вам покажем ход мыслей, а вы сами допилите макрос под себя )


Код
Sub Макрос1()
Dim Rng As Range, rCell As Range, rCell2 As Range

    Set Rng = ActiveCell '.CurrentRegion
    For Each rCell In Rng
        If rCell.MergeCells Then
            If rCell.MergeArea.Rows.Count > 1 Then
                Set MergedArea = Range(rCell.MergeArea.Address)
                For Each rCell2 In MergedArea.Rows
                    If rCell2.EntireRow.Hidden = True Then
                        MsgBox "Отображаем скрытую строку " & rCell2.Row
                        rCell2.EntireRow.Hidden = False 'отображаем скрытую строку
                        Exit For
                    End If
                Next rCell2
            End If
        End If
    Next rCell
End Sub
Изменено: New - 02.08.2020 23:51:01
 
Спасибо Вам огромное!!!
Страницы: 1
Наверх